背景
由于众所周知的原因,目前国内的服务器拉docker镜像非常困难,基本可以说是完全没法用
因此,怎么把image下载下来成了很多人头疼的问题,这里分享一下一种解决办法,就是在已有该镜像的服务器上把镜像推给阿里云,然后再从阿里云上下载该镜像
步骤
进入容器镜像服务
在阿里云的控制台找到容器镜像服务
 
创建个人实例
进入以后可以看到有个人实例跟企业实例选项,在这里我们选择个人实例
 
注意,在这边应该会选区域,请务必选择跟你服务器所在地一样的区域,否则无法连接
看了一下,个人实例有命名空间和镜像数量限制,但是对我们个人而言已经绰绰有余
 
创建命名空间
 
创建镜像仓库
 
镜像仓库 -> 创建镜像仓库 -> 填写相关内容
仓库名称:可以是image name
仓库类型:公有或者私有
填写完成后点击下一步
 
在这边你可以选择镜像的来源,比如GitHub或者本地,由于我在其他服务器上已经下载过了,所以我选择本地仓库
上传/下载镜像
这一段我直接复制官网的说法
- 登录阿里云Docker Registry - 1 - docker login --username=xxxx*****@xx.com [公网地址] - 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。 
 (您可以在访问凭证页面修改凭证密码)
- 从Registry中拉取镜像 - 1 - docker pull [公网地址]/maydaychen/postgres:[镜像版本号] 
- 将镜像推送到Registry - 1 
 2
 3
 4- docker login --username=2458*****@qq.com [公网地址] 
 docker tag [ImageId] [公网地址]/maydaychen/postgres:[镜像版本号]
 docker push [公网地址]/maydaychen/postgres:[镜像版本号]
 请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
- 选择合适的镜像仓库地址 
 从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。 如果您使用的机器位于VPC网络,请使用 [专有网络] 作为Registry的域名登录。
- 示例 
 使用”docker tag”命令重命名镜像,并将它通过专有网络地址推送至Registry。- 1 
 2
 3
 4- docker images 
 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
 registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
 docker tag 37bb9c63c8b2 [专有地址]/acs/agent:0.7-dfb6816- 使用 “docker push” 命令将该镜像推送至远程。 - 1 - docker push [专有地址]/acs/agent:0.7-dfb6816 
 
         
              