Docker commit 容器的提交、本地镜像发布到阿里云,上传私有库 registry
  HataGTb8c2ak 2023年11月02日 50 0

docker commit 容器的提交

需求:运行基础的centos镜像,在容器内安装好vim,然后提交的镜像, 新提交的镜像,再运行出的容器,就默认携带vim命令了。

docker run -it centos bash    #进去之后 yum安装个vim (如果无法使用yum 则拷贝一个过去)

#这里说明一下,有时候容器内无法使用yum,就是镜像的原因。pull下载镜像的时候指定下版本,
 (例如:docker pull centos:centos7)如果不指定版本,进容器内大概率无法使用yum源

exit      #下载好之后 退出镜像
docker ps -a      #根据exit 退出的那个进行id 查找到刚刚退出的那个容器的id号 然后进行设置
docker commit +容器ID centos123/centos-vim-7.0.3  #commit后面跟id号 和新的自定义命名
docker images    #查看 如图所示

image.png

docker run -it centos123/centos-vim-7.0.3 bash  #然后根据新提交的镜像进行使用 就会有vim工具了

本地镜像发布到阿里云

  https://cr.console.aliyun.com    #登入阿里云
  
  找到右上角控制台-左上角列表-找到容器-容器镜像服务-然后找到左侧实例列表-个人实例
  容器要先有命名空间,才能继续创建镜像仓库

如图所示 点击创建命名空间 (可设置公开或者私有)

image.png

创建镜像仓库 如图所示

image.png

然后点击下一步 选择本地仓库 点击创建镜像仓库

image.png

创建之后可以看到自动生成的一系列的 拉取镜像,推送镜像的相关的命令。 直接在终端复制执行即可。 也可已从管理界面进入查看系统生成的相关命令的界面。

image.png

例如使用生成的推送镜像命令。推送下图中自己的镜像

image.png

$ docker login --username=[自己的阿里云ID] registry.cn-hangzhou.aliyuncs.com   
如下图一(输入自己的阿里云登入密码) 如图出现 “Login Succeeded”表示本地链接阿里云库成功
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/qwedsazxc/ceshi:[镜像版本号]
如下图二 修改为对应的版本号及镜像名称 
$ docker push registry.cn-hangzhou.aliyuncs.com/qwedsazxc/ceshi:[镜像版本号]
如下图三 填写对应的版本好之后进行上传

image.png

image.png

image.png

验证 将上传到阿里云的镜像 下载到本地进行使用。 方法命令同上,可以到阿里云镜像仓库中使用生成的命令

docker pull registry.cn-hangzhou.aliyuncs.com/qwedsazxc/ceshi:[镜像版本号] 
如图所示 先将本地的镜像删除然后将上传的下载到本地。

image.png

上传至私有库 docker registry (本地私有库)

docker registry 是官方提供的工具,可以用于构建私有镜像仓库

docker pull registry    下载 私有仓库 registry
docker images      	查看有一个最新的 registry,
docker run -d -p 5000:5000 -v /root/myregistry/:/tmp/registry --privileged=true registry
 			运行私有库,相当于本地有一个私有的docker hub
docker ps       	查看registry信息 如图所示

image.png

docker commit +容器ID centos456/centos:7.9 	   提交容器为centos456/centos:7.9
curl -XGET http://192.168.XX.XX:5000/v2/_catalog  提交前先测试下能否和registry私有库链接
 (本地的IP和上图中-p映射的5000端口)返回{"repositories":[]} 表示库中是空的
docker tag centos456/centos:7.9 192.168.xx.xx:5000/zzyyxx:2.2  (本机宿主机的ip地址加映射的端口号)	
 将提交的新镜像centos456/centos:7.9修改成符合registry规范的tag(192.168.xx.xx:5000/zzyyxx:2.2)
docker images      查看 相当于是新克隆出来一个名为192.168.xx.xx:5000/zzyyxx:2.2 版本的镜像

修改配置文件使之支持http(registry默认设置的安全加固不支持http推送)

vi /etc/docker/daemon.json     在该文件中修改或添加图中红框中的配置
 
 PS:修改之后 建议重启一下docker 服务
 (重启之后注意私服库registry有没有启动
 docker run -d -p 5000:5000 -v /root/myregistry/:/tmp/registry --privileged=true registry)

image.png

docker push 192.168.xx.xx:5000/zzyyxx:2.2   	 直接pull推送(镜像名称+版本号) 
curl -XGET http://192.168.XX.XX:5000/v2/_catalog 验证registry有没有成功推送
{"repositories":["zzyyxx"]}       返回结果 zzyyxx 表示推送成功

测试能否从库中拉取到本地运行使用

docker rmi -f 192.168.XX.XX:5000/zzyyxx:2.2		首先删除原来的镜像
docker pull 192.168.XX.XX:5000/zzyyxx:2.2     拉取zzyyxx镜像
docker run -it 192.168.XX.XX:5000/zzyyxx:2.2 /bin/bash   运行该镜像 如图所示
PS:这里输入的是本地宿主机的ip地址 5000端口映射了容器的5000端口 也就是访问了容器库registry

image.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4koL3J55wyKx   2023年11月13日   35   0   0 icogitCentOS
  9E2BTpjt8nym   2023年12月06日   34   0   0 WindowsgitCentOS
HataGTb8c2ak