「实用」使用阿里云的镜像仓库存储自己的镜像
小明 Lv6

一个免费版的镜像仓库值得你拥有。

背景

最近有在搭建自己喜欢的小玩意,而且为了方便维护迁移,因此需要一个好的平台托管,知名的是DockerHub,但是今天,咱们眼光放在国内——我使用的阿里云容器Hub。

介绍

其实阿里云的官方文档说的很清楚了,我在这里给大家做一些介绍和总结。

阿里云这个仓库,个人版是完全免费的,但是有一定的数量限制,如下图所示,但是目前来看,是完全能够满足我们开发者自身需求。当然如果你有更大的需求,可以升级为企业版。
image
我们在配置仓库、命名空间后就可以正常使用啦。

使用

  1. 登录阿里云Docker Registry
1
$ docker login --username=[你的名字] registry.cn-shanghai.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

  1. 从Registry中拉取镜像
1
$ docker pull registry.cn-shanghai.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
  1. 将镜像推送到Registry

将现有的容器创建一个新镜像,首先还是登录

1
$ docker login --username=[你的名字] registry.cn-shanghai.aliyuncs.com

然后将现有容器提交为一个新的镜像

1
$ docker commit [containerId] [镜像名:镜像版本号]

查看镜像

1
$ docker images

可以看到镜像已经制作成功,为了上传至远程仓库,我们给该镜像打一个tag:

1
$ docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]

推送到远端:

1
$ docker push registry.cn-shanghai.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

  1. 选择合适的镜像仓库地址

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

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shanghai.aliyuncs.com 作为Registry的域名登录。注意:登录的时候就需要使用这个域名,不然,push的时候会提示:

1
denied: requested access to the resource is denied
  1. 示例
    使用”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-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816

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

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

推荐

阿里云服务作为业内首选,目前有大量活动值得参与,作为推广大使,点我享受优惠!
当然更多优惠还得关注微信公众号:程序员小明!!!
image

 评论