客户端上传容器镜像的流程如下图所示:
本文以一个2048应用为例,讲述根据该应用编写Dockerfile文件构建镜像并上传至容器镜像服务的操作。
步骤一:安装容器引擎
1. 准备1台Linux服务器。
2. 以root用户登录服务器。
3. 安装和配置容器引擎,安装的Docker版本必须为1.12及以上。
步骤二:构建镜像
1. 在安装容器引擎的服务器上执行以下命令,下载2048应用的源码。
git clone https://gitee.com/jorgensen/2048.git
2. 下载成功后,进入“2048”目录。
cd 2048
3. 修改Docker file文件。
vim Dockerfile
FROM nginx
COPY . /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
FROM:指定基础镜像nginx。
COPY:将2048源码拷贝到容器内的“/usr/share/nginx/html”目录。
EXPOSE:暴露容器的80端口。
CMD:指定容器运行时的默认命令。
按“Esc”,输入:wq,保存并退出。
4. 使用docker build命令构建镜像。
docker build -t 2048 .
其中,
-t 表示给镜像加一个标签,也就是给镜像取名,这里镜像名为2048。
. 表示上下文路径,镜像构建命令将该路径下的所有内容打包给容器引擎帮助构建镜像。
5. 执行以下命令,查看已成功构建的2048镜像,版本为默认的latest。
docker images
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
2048 latest 8d421c503ed0 About a minute ago 134MB
nginx latest dd34e67e3371 6 days ago 133MB
您还可以看到一个nginx镜像,这个镜像是从镜像仓库下载下来,作为2048镜像的基础镜像使用的。
6. 运行容器镜像(可选)。
镜像构建成功后,您可以执行docker run命令运行容器镜像。
docker run -p 8080:80 2048
docker run命令会启动一个容器,命令中-p是将服务器的8080端口映射到容器的80端口,即服务器的8080端口的流量会映射到容器的80端口,当您在本地机器的浏览器访问“https:// IP:8080”时,就会访问到容器中,此时浏览器返回的内容就是2048应用页面。
步骤三:创建组织
1. 登录容器镜像服务控制台。
2. 在控制台左侧导航栏中,选择组织管理。
3. 在组织管理页面中,单击创建自定义组织。
注意:每个用户最多允许创建3个组织。
4. 在创建自定义组织页面,输入组织名称并设置访问基本。
5. 单击确认。
步骤四:连接容器镜像服务
在安装容器引擎的服务器执行以下指令,连接容器镜像服务。
docker login -u {完整邮箱名} -p {password} ehub.ctcdn.cn
步骤五:上传镜像
在安装容器引擎的服务器上执行以下命令,将镜像上传到指定组织。
$ sudo docker tag {镜像名称}:{版本名称} ehub.ctcdn.cn/组织名称/{镜像名称}:{版本名称}
$ sudo docker push ehub.ctcdn.cn/组织名称/{镜像名称}:{版本名称}