如何上传Docker镜像至容器镜像服务?
本文以一个2048应用为例,讲述根据该应用编写Dockerfile文件构建镜像并上传至容器镜像服务的操作。您可以编写一个Dockerfile文件,以alpine:3.7为基础镜像,来构建一个2048容器镜像。
前提条件
- 已安装Docker,如未安装可参见安装Docker。
- 已获取2048应用,并将该镜像下载至本地。
创建组织
组织用于隔离镜像,并为租户下用户指定不同的权限(读取、编辑、管理)。
- 读取:只能下载镜像,不能上传。
- 编辑:下载镜像、上传镜像、编辑镜像属性以及创建触发器。
- 管理:下载镜像、上传镜像、删除镜像或版本、编辑镜像属性、添加授权、添加触发器以及共享镜像。
- 登录容器镜像服务控制台。
- 在左侧菜单栏选择“组织管理”,单击右侧“创建组织”,在弹出的页面中填写“组织名称”,然后单击“确定”。
图1 创建组织
客户端上传镜像
docker客户端上传镜像,是指使用docker命令将镜像上传到容器镜像服务的镜像仓库。
本章节以2048-demo:v1镜像为例,介绍如何上传镜像。上传成功后,在“我的镜像”中显示已上传成功的镜像。
- 使用客户端上传镜像,镜像的每个layer大小不能超过10G。
- 上传镜像的Docker客户端版本必须为1.11.2及以上。
- 连接容器镜像服务。
- 登录容器镜像服务控制台。
- 在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”,在弹出的页面中单击“生成临时的docker login指令”,单击复制docker login指令。docker login指令末尾的域名即为当前镜像仓库地址,记录该地址。
图2 获取docker login指令
此处获取的docker login指令有效期为16小时,若需要长期有效的docker login指令,请参见获取长期有效docker login指令。
- 在安装Docker的机器中执行上一步复制的docker login指令。
登录成功会显示“login succeeded”。
- 在安装docker的机器给2048-demo:v1镜像打标签。
docker tag [镜像名称:版本名称] [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]
镜像名称不支持多级目录格式,例如:镜像名称可命名为“2048-demo”,不可命名为“2048-demo/test”。
样例如下:
docker tag 2048-demo:v1 swr.cn-north-1.myhuaweicloud.com/group/2048-demo:v1
其中:
- swr.cn-north-1.myhuaweicloud.com为容器镜像服务的镜像仓库地址。
- group为组织名称,如果该组织还没有创建,容器镜像服务会根据组织名称自动创建一个组织。
- 2048-demo:v1 为镜像名称和版本号。
- 上传镜像至镜像仓库。
docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]
样例如下:
docker push swr.cn-north-1.myhuaweicloud.com/group/2048-demo:v1
终端显示如下信息,表明push镜像成功。
6d6b9812c8ae: Pushed 695da0025de6: Pushed fe4c16cbf7a4: Pushed v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948
返回系统,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。