由于官方的docker hub访问由于网络原因,可能会比较慢,博主推荐大家可以选择腾讯云或阿里云镜像仓库,放心个人版都是免费的,而博主因为公司内部大多数项目采用的是腾讯云的服务,这里我们就以腾讯云为例
使用WX扫一扫快速注册,个人推荐关联后续可以通过腾讯云小程序推送诸如:续费通知、安全通知等等。
在腾讯云控制台中,选择云产品 > 容器镜像服务,进入容器镜像服务控制台,按照界面提示开通容器镜像服务并为服务授权
进入实例管理页面,其中登陆实例可以看到我们的登陆账户信息,更多选项中可以修改配置我们的登陆密码
docker login ccr.ccs.tencentyun.com --username=xxxxxxxxx
docker tag 镜像ID ccr.ccs.tencentyun.com/命名空间名称/镜像名称:[tag]
docker push ccr.ccs.tencentyun.com/命名空间名称/镜像名称:[tag]
想要提交远程仓库,我们先需要构建我们本地的镜像文件 创建镜像语法:
docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-m :提交时的说明文字;
我们就拿上一章的redis容器做例子
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae70fafb556 redis "docker-entrypoint.s…" 22 hours ago Up 11 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp myredis
1、构建提交新镜像
#根据redis容器id构建新的镜像
docker commit -a micro -m "测试构建新的redis镜像" 1ae70fafb556 microredis:1.0.0
#登陆腾讯云镜像仓库 按照提示输入密码
docker login ccr.ccs.tencentyun.com --username=你的id
#创建tag 注意根据自己配置信息修改
docker tag cd86e9abb038 ccr.ccs.tencentyun.com/toher-cloud/microredis:1.0.0
#push提交 注意根据自己配置信息修改
docker push ccr.ccs.tencentyun.com/toher-cloud/microredis:1.0.0
等待提交完成后,刷新腾讯云镜像仓库就能看到我们刚才提交的镜像文件了
2、拉取镜像
为了验证拉取成功,我们先将本地构建的删除
docker images
docker rmi -f 删除的镜像id
#开始拉取
docker pull ccr.ccs.tencentyun.com/toher-cloud/microredis:1.0.0
#查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ccr.ccs.tencentyun.com/toher-cloud/microredis 1.0.0 cd86e9abb038 49 minutes ago 117MB
至此我们通过腾讯云作为为docker的远程仓库的测试已完成
很多时候我们不希望自己的项目镜像发布到第三方平台上管理,我们也可以自行搭建属于自己的私有仓库,使用官方提供的Docker Registry工具,可以用于构建私有镜像仓库
#安装Docker Registry工具
docker pull registry
#运行 并按照上一章挂载目录设计/data/ 挂载
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
#验证查看私有仓库 192.168.1.20为博主宿主机的ip
curl -XGET http://192.168.1.20:5000/v2/_catalog
#输出如下信息,则证明目前我们仓库安装成功且目前仓库没有镜像
{"repositories":[]}
docker默认使用https方式推送,不允许http方式推送镜像,我们通过修改docker配置选项来取消这个限制
vim /etc/docker/daemon.json
增加一行配置: "insecure-registries" : ["宿主机IP:5000"] ,如果你之前配置过了镜像加速网址,效果最终如下:
{
"registry-mirrors": ["https://ccr.ccs.tencentyun.com"],
"insecure-registries": ["192.168.1.20:5000"]
}
相关配置已经调整完成,我们开始操作,实际上和腾讯云提交拉取基本一致,无非就是登陆的地址是我们本地IP,其它内网电脑互通的情况下,直接访问我们的本地IP即可;
#tag镜像
docker tag cd86e9abb038 192.168.1.20:5000/microredis:1.0.0
#提交镜像
docker push 192.168.1.20:5000/microredis:1.0.0
#重新检查是否已经
curl -XGET http://192.168.1.20:5000/v2/_catalog
#看到本地仓库已经提交了microredis镜像
{"repositories":["microredis"]}
#拉取镜像
docker pull 192.168.1.20:5000/microredis:1.0.0
至此,本地私有仓库的测试已完成,实际上本地仓库可以配置登录名/密码,这里为了演示方便就不进行过多赘述了,可以查阅相关资料配置即可;
本章节主要介绍了以腾讯云作为docker远程仓库的操作演示,以及如何部署本地docker私有仓库的操作演示,如果本章节内容对你有所帮助,欢迎点赞、关注、收藏,谢谢!
下一章:在Centos Stream 9上Docker的实操教程 - Dockerfile详解