首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TKE标准化 - 通过Dockerfile制作标准化Docker基础镜像和业务镜像(一)

容器部署是基于Docker业务镜像

Gitlab Dockerfile文件会引用腾讯云镜像仓库中的Docker基础镜像,将源代码添加至Docker基础镜像中,打包成Docker业务镜像。部署是基于Docker业务镜像。

容器云平台Docker镜像

1.Docker基础镜像:提供基础应用型的Docker软件服务(例如:nginx,php,jdk等),所以dockerhub镜像公有镜像自定义私有镜像都可以理解为基础镜像。

2.Docker业务镜像:将Gitlab上的源代码,或通过maven打出来的jar或tar包,添加至基础镜像中,构建打包成的Docker镜像。

通过Dockerfile制作标准化镜像

1.基础镜像Dockerfile

2.业务镜像Dockerfile

3.Dockerfile编写规范总结

1.基础镜像Dockerfile

基础镜像Dockerfile

第1行: FROM引用hub基础镜像centos:7.5.1804

第2行: 通过MAINTAINER 说明作者和作者邮箱地址;

第3行: 将本地的nginx.tar.gz包添加至/usr/local/services目录;(tar.gz会自动解压,根据自身需求定制)

第4行:创建nginx日志目录;

第5~6行:安装常用软件或依赖软件。

第7行:每次我们安装完软件,一定要执行yum clean all,这样可以清除yum缓存,减少镜像体积。

第8~9行:设置nginx家目录环境变量。

将以上内容保存为Dockerfile文件,最后执行docker build -t test:v1 .,生成本地镜像,然后打上远程腾讯云镜像仓库tag标签,推送至腾讯云镜像仓库即可。可参考《commit方式自定义Docker基础镜像,并push至腾讯云镜像仓库》的第5点。

至此,基础镜像制作完成。

2.业务镜像Dockerfile

业务镜像Dockerfile

第1行: FROM引用腾讯云基础镜像ccr.ccs.tencentyun.com/liangfeng/fengliang:nginx

第2行: 通过MAINTAINER 说明作者和作者邮箱地址;

第3~4行:代码部署,由客户自行进行业务逻辑控制,3行功能是创建目录,4行是将当前目录下的文件添加至基础镜像

第5行:EXPOSE声明服务端口。(容器内的服务端口,这里是nginx的启动端口)

第6行:通过ENTRYPOINT设置业务镜像,开机自启动nginx服务。

Dockerfile是在gitlab上,通过腾讯容器云平台构建打包,生成业务镜像。

3.Dockerfile编写规范总结

使用 Dockerfile 来构建镜像有以下建议:

  1. 尽量精简,不安装多余的软件包。
  2. 尽量选择 Docker 官方提供镜像作为基础版本,减少镜像体积。(例如:FROM内容固定)
  3. Dockerfile 开头几行的指令应当固定下来,不建议频繁更改,有效利用缓存。(例如:FROM和MAINTAINER内容固定)
  4. 多条 RUN 命令使用连接,有利于理解且方便维护。
  5. 业务镜像通过EXPOSE声明服务端口。
  6. 基础镜像通过 -t 标记构建镜像,有利于管理新创建的镜像。
  7. 基础镜像不在 Dockerfile 中映射公有端口。
  8. 基础镜像Push 前先在本地运行,确保构建的镜像无误。
下一篇
举报
领券