客户端上传镜像
操作场景
本章节以容器引擎基础知识中制作的nginx:v1镜像为例,介绍如何使用客户端上传镜像。客户端上传镜像,是指在安装了容器引擎的客户端上使用docker命令将镜像上传到容器镜像服务的镜像仓库。
约束与限制
- 使用客户端上传镜像,镜像的每个layer大小不能超过10G。
- 上传镜像的容器引擎客户端版本必须为1.11.2及以上。
前提条件
- 已创建组织,请参见创建组织。
- 如果您使用非CCE节点的ECS,并通过内网地址连接SWR镜像仓库,需要按以下方法配置insecure-registries:
- 修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:
{ "insecure-registries": [ "{Intranet address}" ] }
{Intranet address}获取方式如下:登录SWR管理控制台,在“总览”页面单击右上角“登录指令”,获取内网指令中的内网地址。
图1 获取内网地址
如果在“/etc/default/docker”文件的DOCKER_OPTS配置项中已经配置insecure-registry,那么不需要修改“/etc/docker/daemon.json”文件。
请执行以下命令,将内网地址添加到DOCKER_OPTS配置项的末尾。
vi /etc/default/docker
示例:
# Use DOCKER_OPTS to modify the daemon startup options. DOCKER_OPTS="--insecure-registry={existing configurations} --insecure-registry={Intranet address}"
- 重启Docker使配置生效。
sudo systemctl restart docker
- 修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:
操作步骤
- 连接容器镜像服务。
- 登录容器镜像服务控制台,以root用户登录容器引擎所在的虚拟机。
- 选择容器镜像服务控制台左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。
- 此处生成的登录指令有效期为24小时,若需要长期有效的登录指令,请参见获取长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。
- 登录指令末尾的域名为镜像仓库地址,请记录该地址,后面会使用到。
- 在安装Docker的机器中执行上一步复制的登录指令。
- 在安装Docker的机器上执行以下命令,为nginx镜像打标签。
docker tag [镜像名称1:版本名称1] [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]
其中,
- [镜像名称1:版本名称1]:请替换为您所要上传的实际镜像的名称和版本名称。
- [镜像仓库地址]:可在SWR控制台上查询,即1.b中登录指令末尾的域名。
- [组织名称]:请替换为您创建的组织。
- [镜像名称2:版本名称2]:请替换为您期待的镜像名称和镜像版本。
示例:
docker tag nginx:v1 {Image repository address}/group/nginx:v1
- 上传镜像至镜像仓库。
docker push [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]
示例:
docker push {Image repository address}/group/nginx:v1
终端显示如下信息,表明上传镜像成功。
6d6b9812c8ae: Pushed 695da0025de6: Pushed fe4c16cbf7a4: Pushed v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948
返回容器镜像服务控制台,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。