Docker 学习3 构建镜像

简单介绍
  • registry --------->仓库 ----------------->镜像
  • 本地镜像都保存在宿主机下 :
    /var/lib/docker/containers
  • 镜像从仓库下载下来.镜像保存在仓库中,而仓库存在于Registry中.
  • Docker Hub 中有两种类型的仓库:
    • 用户库:
      用户仓库的镜像都是有docker用户创建的;
      用户仓库的命名由用户名和仓库名两部分组成,如scrapinghub/splash
    • 顶层仓库
      顶层仓库则是由docker内部人员来管理的;
      顶层仓库只包含仓库名的部分,如centos仓库.
      顶层仓库中的镜像时架构良好,安全且是最新的.
  • 用do…

docker使用

1.拉取镜像
	docker pull centos
2.从centos镜像 创建一个容器
docker run -i -t centos /bin/bash
3.用Dockerfile构建镜像
  • 创建一个包含Dockerfile文件,Docker在创建镜像构建上下文,并将该文件所在目录下的所有文件上传到docker守护进程.
    touch /root/docker_demo/Dockerfile 	
    
  • 构建镜像的执行流程:
    • Docker从基础镜像运行一个容器
    • 执行一条指令,对容器做出修改
    • 执行类似 docker commit的操作,提交一个新的镜像层
    • Docer再基于刚提交的镜像运行一个容器
    • 执行Dockerfile中的下一条指令,直到所有指令都执行完毕
    # 示例
    # version: 0.0.1
    # 每条指令必须大写如FROM
    # 执行顺序从上到下执行
    # 每条指令都会创建一个新的镜像并对镜像进行提交
    FROM ubuntu:14.04 # 第一条指令都应该是FROM,FROM指令指定一个已经存在的镜像,后续指令都基于该镜像进行,这个镜像称为基础镜像
    #MAINTAINER James Turnbull "james@example.com" #指定该镜像的作者是谁,以及邮件地址
    RUN	apt-get update #在当前镜像中运行指定命令,跟新仓库
    RUN apt-get install -y nginx # 当前镜像中安装nginx
    #RUN echo "Hi,I am in your container' /usr/share/nignx/html/index.html # 创建html文件
    EXPOSE 80 # 告诉Docker该容器内的应用程序将会使用容器的指定端口80,可以指定多个EXPOSE指令	来向外部公开多个端口
    # EXPOSE 指令可以用来帮助多个容器链接
    
  • 根据Dockerfile构建镜像
    docker build -t='psd/test:v1' .	# -t设置仓库 名字和名称 v1 为标签
    
Docker Image的发布
  • 方法1 Save Image To TarBall 保存为tar包
docker save to -o centos-myname-nginx.tar centos:nginx	
# centos-myname-nginx.tar表示导出镜像的名字
# centos:nginx 表示原来镜像的名字
docker load -i centos-myname-nginx.tar	# 表示导入本地镜像
  • 方法2 Push Image To Docker Hub
# 步骤1:注册一个账号 https://hub.docker.com/
# 步骤2:登录
docker login -u userabc -p abc-123 -e userab@gmail.com	# -u 用户名 -p 密码 -e 电子邮件
# 步骤3:上传镜像
docker pysh centos:nginx
# 步骤4:下载镜像
docker pull userabc/centos:nginx
docker run -d -p 80:80 userabc/centos /bin/bash -c /usr/local/bin/star.sh	# -p 物理机的80端口:容器的实例的80,把容器中的80端口映射到物理机上的80端口
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值