Docker学习(3)—— 将容器转化为新的镜像,并将新镜像发布到阿里云公共仓库或私有仓库

一. 将容器转化为镜像

使用docker pull命令从远程仓库下载的镜像为base镜像,只具有最小的内核。我们可以在base镜像上安装其他工具,将其生成为一个新的镜像。相当于可以在原始的基础镜像上一层一层添加。

例如:下载一个centos的镜像,其没有vim命令,我们可以启动centos的容器,然后添加vim命令,使用commit命令将容器转化为一个新的镜像;之后启动新生成镜像的容器,在该容器内就可以使用vim命令。commit命令为:

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名] 

1. 下载centos7镜像

docker pull centos:7

2. 查看镜像id

docker images

   

3. 新建并启动centos7

4. 在centos7容器内下载vim

yum install vim

5. 在容器外查看当前运行的centos7容器的id(ctrl+p+q退出但不停止容器,或新打开一个终端)

docker ps

6. 在容器外将centos7容器转化为一个新的镜像,该镜像将具有vim命令的功能。

docker commit -m="add vim ok" -a="tom" 66f428876ae8 mycentos:7.1

 由于该镜像在原始的centos镜像上加了vim功能,因此大小从204MB增大到448MB。

二. 将镜像发布到阿里云上

1. 创建命名空间

2. 创建镜像仓库

创建阿里云镜像仓库后下面有操作信息,可以根据需求执行

3. 将新镜像推送到阿里云仓库

执行以下命令: 

4. 将阿里云上的镜像拉取到本地

删除本地的镜像,然后 执行以下命令将镜像从阿里云仓库中拉取下来:

三. 将镜像上传到私有仓库

1. 下载私服库镜像

docker pull registry

2.运行私有库Registry,相当于本地有个私有Docker hub

docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry

 默认情况下,仓库被创建在容器的/var/lib/registry目录下

3. 验证私有库上是否有镜像(此时为空)

curl -XGET http://192.168.32.128:5000/v2/_catalog

4. 将新镜像mycentos:7.1修改为符合私服规范的Tag

docker tag 镜像:Tag ip:port/镜像:Tag

 ip为linux系统本机的ip,例如:docker tag mycentos:7.1 192.168.32.128:5000/mycentos:7.1(使用docker tag命令将mycentos:7.1修改为192.168.32.128:5000/mycentos:7.1)

 

5. 修改配置文件来支持http

使用vim命令在/etc/docker/daemon.json中添加以下内容

 "insecure-registries": ["本机ip:5000"]

"insecure-registries": ["192.168.32.128:5000"]

6. 将新镜像推送到私服库(此时私有库Registry应为运行状态)

docker push 192.168.32.128:5000/mycentos:7.1

7. 验证私有库上是否有镜像

curl -XGET http://192.168.32.128:5000/v2/_catalog

 

8. 将私有库上的镜像拉取到本地

docker pull 192.168.32.128:5000/mycentos:7.1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值