通过外网上传私有镜像,指的是上传镜像的虚拟机(也可称为节点)不能联通云容器引擎的内部网络。建议使用内网上传镜像,网速会更快,内网上传请参见3.7.4上传私有镜像(内网上传)。
本章节以nginx:1.10镜像为例,介绍如何上传本地镜像到CCE镜像仓库。上传成功后,会在镜像仓库显示已上传成功的镜像。
在使用Docker客户端上传镜像的过程中,如果出现网络异常断开或软件仓库被异常重启的情况,是由于Docker客户端,其不会继续向软件仓库发送上传镜像的请求,从而导致Docker客户端卡机无法退出。在此情况下可以通过重启docker daemon的方式解决。
前提条件:
准备一台已安装Docker客户端的虚拟机,且Docker版本为 1.11.2、1.12.0、1.12.1或1.12.6;
请确保镜像的正确性,能够成功后台启动;
操作步骤:
创建组织:
A、登录云容器引擎控制台,单击左侧导航栏的【镜像仓库】->【组织管理】,单击【创建组织】;
B、输入命名空间名称,如test,单击【确定】;
C、单击【Pull/Push指南】页签,可查看Pull/Push镜像的方法;
以下步骤讲解“通过外网云主机”Push镜像到CCE镜像仓库;
A、以root用户登录docker所在的虚拟机;
B、执行以下操作,允许docker访问我的镜像仓库;
1、配置docker参数:
a.Ubuntu系统下:
vi /etc/default/docker
在DOCKER_OPTS中,增加如下租字体所示:
DOCKER_OPTS="-insecure-registry registry.cn-north-l.huaweicloud.com"
b. SuSE操作系统下:
vi /etc/sysconfig/docker
若配置文件中有DOCKER_OPTS字段,则在在DOCKER_OPTS中,增加如下租字体所示:
DOCKER_OPTS="-insecure-registry registry.cn-north-l.huaweicloud.com"
若配置文件中没有DOCKER_OPTS字段,则在INSECURE_REGISTRY中,增加如下粗体所示:
INSECURE_REGISTRY="-insecure-registry registry.cn-north-l.huaweicloud.com"
2、保存文件并退出;
3、重启docker;
service docker restart
C、创建容器镜像仓库,参考3.7.3 创建容器镜像仓库;
D、单击创建好的镜像仓库,进入仓库详情页面;
E、获取仓库访问权限文件:
1、在【Pull/Push指南】页面,单击【生成docker login指令】;
2、单击【生成docker login指定】,单击 复制docker login指令;
3、将docker login指令拷贝到虚拟机中,按Enter;
F、给nginx:1.10镜像打标签:
1、查看镜像名称:
docker images
2、给nginx:1.10镜像打标签:docker tag [原镜像名:版本号] [该镜像的仓库外网地址]:[版本号]。样例如下:
docker tag nginx:1.10 192.168.0.0/namespace/nginx:1.10
其中,192.168.0.0/namespace/nginx为本镜像仓库外网地址,请查看“Pull/Push指南”中的“1.本镜像仓库地址”中的“外网地址”,1.10为版本号。
G、Push镜像至镜像仓库:
docker push [该镜像的仓库外网地址]:[版本号]
样例如下:
docker push 192.168.0.0/namespace/nginx:1.10
终端显示如下信息,表明push镜像成功。
6d6b9812c8ae: Pushed
695da0025de6: Pushed
fe4c16cbf7a4: Pushed
1.10: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948
返回系统,在容器镜像仓库的“镜像详情”页面,执行刷新操作后可查看到对应的镜像信息。