国内 Docker 镜像加速器和国内公共镜像仓库那些事

前言

首先我们知道,全球最大的公共镜像仓库是 Docker 公司自己搭建的 Docker Hub,也是权威性最高的,里面包含了各种各样的官方镜像,Docker Hub 为每一个注册用户提供了个人镜像仓库服务,该个人镜像仓库是公共的。
以上都不是重点,重点是因为各种各样的原因,国内使用 Docker Hub 提供的镜像仓库会很慢,虽然 Docker 提供了 registry 镜像,用户可以通过 registry 搭建自己的镜像仓库,但是这种基础设施能用公共的就用公共。

镜像加速器

针对国内访问 Docker Hub 速度慢的问题,国内很多大型企业和大学提供了镜像加速器,此镜像非 Docker 概念中的镜像,而是说它是 Docker Hub 的一个镜像,它会定时从 Docker Hub 同步镜像到国内的镜像仓库,从国内的镜像仓库通过镜像到 Docker Hub,所以你使用加速器推送的镜像最终还是到了 Docker Hub 中。使用镜像加速器可以显著提升国内 pull 和 push 镜像的速度。
国内免费镜像加速器总览:https://tvtv.fun/mirrors-list.html。

公共镜像仓库

使用镜像加速器还是推送到了 Docker Hub 中,可不可以不推送到 Docker Hub 中,国内有没有免费的镜像仓库呢?有的,国内云服务商如阿里云、华为云为每一个注册用户提供了免费的个人版镜像仓库,虽然仓库容量收到限制,但是个人使用已经完全够用,而且还提供了可视化界面。
这里我演示以下使用华为云个人镜像仓库 pull 和 push 镜像的流程。
第一步,登录华为云官方,找到容器镜像服务 SWR
在这里插入图片描述
在这里插入图片描述
第二步,创建组织
在这里插入图片描述
第三步,因为现在使用国内的仓库了,所以要在本地主机和远程服务器中都退出登录 Docker Hub,转而登录华为云的仓库
在这里插入图片描述
第四步,配置镜像加速器,按照提示的步骤操作即可,简而言之就是修改 deamon.json 中的 registry-mirrors 属性
在这里插入图片描述
第五步,在本地 push 镜像到华为云镜像仓库,在远程服务器从华为云镜像仓库 pull 镜像到宿主机
推送到仓库的镜像名称要符合要求,具体步骤参考:https://support.huaweicloud.com/usermanual-swr/swr_01_0011.html。
将现有的镜像 tag 修改成 [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]

  • 镜像仓库地址:你在第三步中的登录指令的最后的域名就是这里的镜像仓库地址
  • 组织名称:你在第二步中创建的组织名称
  • 镜像名称和版本号:镜像真正的名称和版本号,在华为云可视化界面中看到的镜像名称就是这个,如 nginx:v1
    假设镜像仓库地址是 swr.cn.huaweicloud.com,组织名称是 myorg
# 给镜像重新打标签
$ docker tag nginx:v1 swr.cn.huaweicloud.com/myorg/nginx:v1
# 推送镜像
$ docker pull swr.cn.huaweicloud.com/myorg/nginx:v1
# 拉取镜像
$ docker push swr.cn.huaweicloud.com/myorg/nginx:v1

在我的镜像中可以看到上传的镜像
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/imonkeyi/article/details/132790393