Docker将镜像推送到阿里云DockerRegistry

登录阿里云Docker Registry

[仓库地址] 以广州仓库为例

  • 公网地址 registry.cn-guangzhou.aliyuncs.com 仓库公网地址
  • 专有网络 registry-vpc.cn-guangzhou.aliyuncs.com 专有网络机器请使用仓库专有网络地址
  • 经典网络 registry-internal.cn-guangzhou.aliyuncs.com 通过访问镜像仓库内网地址来加快镜像下载速度并减少公网流量开销
1
docker login --username=[阿里云账号全名] [仓库地址] --password=[开通服务时设置的密码]

异常解决

Error: Cannot perform an interactive login from a non TTY device

1
winpty docker login --username=[阿里云账号全名] [仓库地址] --password=[开通服务时设置的密码]

从Registry中拉取镜像

1
docker pull [仓库地址]/[命名空间]/[仓库名称]:[镜像版本号]

将镜像推送到Registry

1
docker login --username=[阿里云账号全名] [仓库地址] --password=[开通服务时设置的密码]
1
docker tag [ImageId] [仓库地址]/[命名空间]/[仓库名称]:[镜像版本号]
1
docker push [仓库地址]/[命名空间]/[仓库名称]:[镜像版本号]

[ImageId] 获取

1
docker images

选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-guangzhou.aliyuncs.com 作为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 registry-vpc.cn-guangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

使用 “docker push” 命令将该镜像推送至远程。

1
$ docker push registry-vpc.cn-guangzhou.aliyuncs.com/acs/agent:0.7-dfb6816