背景

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

介绍

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

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

使用

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

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

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

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

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

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

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

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

为了方便版本管理,我们可以给该镜像打一个tag:

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

推送到远端:

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

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

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

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

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

denied: requested access to the resource is denied
  1. 示例
    使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ 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" 命令将该镜像推送至远程。

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

推荐

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

本文可转载,但需声明原文出处。 程序员小明,一个很少加班的程序员。欢迎关注微信公众号“程序员小明”,获取更多优质文章。

程序员小明
43 声望5 粉丝