在Centos Stream 9上Docker的实操教程(四) - Docker腾讯云远程仓库和本地私有仓库

在Centos Stream 9上Docker的实操教程 - Docker腾讯云远程仓库和本地私有仓库

  • 本地镜像发布到腾讯云
    • 注册开通腾讯云
    • 初始化个人版服务
    • 创建仓库
    • 推送拉取镜像
  • 私有仓库
  • 结语

本地镜像发布到腾讯云

由于官方的docker hub访问由于网络原因,可能会比较慢,博主推荐大家可以选择腾讯云或阿里云镜像仓库,放心个人版都是免费的,而博主因为公司内部大多数项目采用的是腾讯云的服务,这里我们就以腾讯云为例

注册开通腾讯云

使用WX扫一扫快速注册,个人推荐关联后续可以通过腾讯云小程序推送诸如:续费通知、安全通知等等。

在腾讯云控制台中,选择云产品 > 容器镜像服务,进入容器镜像服务控制台,按照界面提示开通容器镜像服务并为服务授权
在Centos Stream 9上Docker的实操教程(四) - Docker腾讯云远程仓库和本地私有仓库_第1张图片

初始化个人版服务

进入实例管理页面,其中登陆实例可以看到我们的登陆账户信息,更多选项中可以修改配置我们的登陆密码
在这里插入图片描述

docker login ccr.ccs.tencentyun.com --username=xxxxxxxxx
  • username 是当前登录的腾讯云账号ID
  • 在命令行工具中执行该登录指令,并正确输入设置的密码,如显示 Login Succeeded 即表示登录成功

创建仓库

  • 点击左侧菜单 > 命名空间 新增命名空间
    我们无需再去创建镜像仓库,直接通过 Docker 客户端向该命名空间内推送镜像,对应的镜像仓库将被自动创建,如下所示
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详解

你可能感兴趣的:(Docker,腾讯云,docker,centos)