功能流程
客户端上传容器镜像的流程如下图所示:
本文以一个2048应用为例,讲述根据该应用编写Dockerfile文件构建镜像并上传至容器镜像服务的操作。
步骤一:安装容器引擎
- 准备1台Linux服务器。
- 以root用户登录服务器。
- 安装和配置容器引擎,安装的Docker版本必须为1.12及以上。
步骤二:构建镜像
1.在安装容器引擎的服务器上执行以下命令,以2048应用为例,下载2048应用的源码。
git clone https://gitee.com/jorgensen/2048.git
2.下载成功后,进入“2048”目录。
cd 2048
3.修改Dockerfile文件。
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.登录容器镜像服务CRS管理控制台。
2.在控制台左侧导航栏中,选择【组织管理】。
3。在【组织管理】页面中,单击【创建自定义组织】。
4.在【创建自定义组织】页面,输入组织名称并设置访问级别。
5.单击【确认】。
注意:每个用户最多允许创建3个组织。
步骤四:连接容器镜像服务
1.在安装容器引擎的服务器执行以下指令,连接容器镜像服务。
$ sudo docker login -u {天翼云账户ID} -p {密码} ehub.ctcdn.cn
步骤五:上传镜像
1.在安装容器引擎的服务器上执行以下命令,将镜像上传到指定组织。
$ sudo docker tag {镜像名称}:{版本名称} ehub.ctcdn.cn/组织名称/{镜像名称}:{版本名称}
$ sudo docker push ehub.ctcdn.cn/组织名称/{镜像名称}:{版本名称}