入门指引
容器镜像服务是一种支持容器镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助用户快速部署容器化服务。本文档将帮助您学习如何安装容器引擎以及如何使用容器引擎客户端上传镜像到容器镜像仓库。
说明上传镜像仅适用于管理控制台操作。
图 入门流程图
准备工作
在使用容器镜像服务前,您需要完成天翼云注册并实名认证的准备工作。
本文以一个2048应用为例,讲述根据该应用编写Dockerfile文件构建镜像并上传至容器镜像服务的操作。您可以编写一个Dockerfile文件,以alpine:3.7为基础镜像,来构建一个2048容器镜像。
前提条件
- 已安装Docker
- 已获取2048应用,并将该镜像下载至本地。
构建镜像
步骤1: 使用root用户登录虚拟机。
步骤2: 创建2048-demo目录。
mkdir 2048-demo
步骤3 :下载2048源码至2048-demo目录中。
该应用源码地址为:https://gitee.com/jorgensen/2048.git。
步骤4 :创建名为Dockerfile的文件。
cd 2048-demo
touch Dockerfile
步骤5 :编辑Dockerfile。
vi Dockerfile
FROM alpine:3.7
RUN apk --update add nginx
COPY 2048 /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
- FROM:指定基础镜像alpine:3.7。
- RUN:安装nginx。
- COPY:将2048源码拷贝到容器内的“/usr/share/nginx/html”目录。
- EXPOSE:暴露容器的80端口。
- CMD:指定容器运行时的默认命令。
保存并退出。
步骤6 :执行以下命令构建镜像。
docker build -t 2048-demo:v1 .
镜像构建的格式为:docker build [选项] <上下文路径>,详细命令可参考https://docs.docker.com/engine/reference/commandline/build/。
- -t 2048-demo:v1:指定镜像的名称和版本。
- .:指定Dockerfile所在目录,镜像构建命令会按照Dockerfile的内容构建镜像。
步骤7 :执行以下命令,可查看到已成功构建的2048-demo镜像,版本为v1。
docker images | grep 2048-demo
查看已构建的2048-demo镜像
创建组织
组织用于隔离镜像,并为租户下用户指定不同的权限(读取、编辑、管理)。
- 读取:只能下载镜像,不能上传。
- 编辑:下载镜像、上传镜像、编辑镜像属性以及创建触发器。
- 管理:下载镜像、上传镜像、删除镜像或版本、编辑镜像属性、添加授权、以及共享镜像。
步骤1 :登录容器镜像服务控制台。
步骤2 :在左侧菜单栏选择“组织管理”,单击右侧“创建组织”,在弹出的页面中填写“组织名称”,然后单击“确定”。
客户端上传镜像
docker客户端上传镜像,是指使用docker命令将镜像上传到容器镜像服务的镜像仓库。
本章节以2048-demo:v1镜像为例,介绍如何上传镜像。上传成功后,在“我的镜像”中显示已上传成功的镜像。
注意
使用客户端上传镜像,镜像的每个layer大小不能超过10G。
上传镜像的Docker客户端版本必须为1.11.2及以上。
步骤1:连接容器镜像服务。
a. 登录容器镜像服务控制台。
b. 在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”,在弹出的页面中单击“生成临时docker login指令”,单击 复制docker login指令。docker login指令末尾的域名即为当前镜像仓库地址,记录该地址。
说明此处获取的docker login指令有效期为24小时,若需要长期有效的docker login指令,请参见获取长期有效docker login指令
获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。
c.在安装Docker的机器中执行上一步复制的docker login指令。
登录成功会显示“login succeeded”。
步骤2:在安装docker的机器给2048-demo:v1镜像打标签。
docker tag [镜像名称:版本名称] [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]
说明镜像名称不支持多级目录格式,例如:镜像名称可命名为“2048-demo”,不可命名为“2048-demo/test”。
样例如下:
docker tag 2048-demo:v1 {Public image address}/group/2048-demo:v1
其中:
- {Public image address}为容器镜像服务的镜像仓库地址。获取该地址的方式:单击“我的镜像”,单击镜像列表中的镜像名称,在“Pull/Push指南”页签中的“1. 本镜像地址”下可以看到镜像仓库地址。
- group为组织名称,如果该组织还没有创建,容器镜像服务会根据组织名称自动创建一个组织。
- 2048-demo:v1 为镜像名称和版本号。
步骤3:上传镜像至镜像仓库。
docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]
样例如下:
docker push {Public image address}/group/2048-demo:v1
终端显示如下信息,表明push镜像成功。
6d6b9812c8ae: Pushed
695da0025de6: Pushed
fe4c16cbf7a4: Pushed
v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948
返回系统,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。