专栏首页TKETKE标准化 - 通过Dockerfile制作标准化Docker基础镜像和业务镜像(一)
原创

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 前先在本地运行,确保构建的镜像无误。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TKE操作指南 - 容器业务部署标准化总结(十六)

    /data/logs/$module_name($module_name指应用名,一般为java应用)

    亮哥说TKE
  • TKE操作指南 - 腾讯云Docker镜像仓库授权连接Gitlab(二)

    镜像仓库用于存放 Docker 镜像,Docker 镜像用于部署容器服务,每个镜像有特定的唯一标识(镜像的 Registry 地址+镜像名称+镜像 Tag)。

    亮哥说TKE
  • TKE操作指南 - 制作Nginx和Php Docker基础镜像(三)

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

    亮哥说TKE
  • Docker 曲径通幽

    早在第一篇介绍 Docker初次见面 中就对 Docker 的镜像有了说明和介绍,今天再详细的说一下。

    李郑
  • Docker之 - 使用镜像和仓库

    上一篇文章中,我们学习了包括 docker run 在内的许多对容器进行操作的基本指令,那么在本节中,我们主要探讨 Docker 镜像的一些概念,比如什么是镜像...

    cxuan
  • docker 入门-镜像(三)

    解释: 一般开头都是这四行,说明一下镜像版本、作者信息和基于什么镜像开始构建,其余的都是一行一行的指令,每个指令都是要大写,后面一定要有参数选项。指令从上往下执...

    benny
  • Dockerfile指令

    编写 Dockerfile 文件之后,可以通过 docker [image] build 命令来创建镜像,语法命令如下:

    喵叔
  • Docker 学习笔记--通过父镜像生成镜像

    一般情况下我们会通过已有镜像(父镜像)生成新的镜像,这个时候我们就需要使用到 FROM 命令。父镜像直接影响了生成新景象的大小和功能。我们可以把基础镜像或者普通...

    喵叔
  • TKE操作笔记01

    腾讯云容器服务(Tencent Kubernetes Engine,TKE)是高度可扩展的高性能容器管理服务,您可以在托管的云服务器实例集群上轻松运行应用程序。...

    聂小星
  • openshift-ImageStream

    ImageStream包含任意数量的由标签(tags)标识的Docker格式的容器镜像。它提供了关联镜像的单个虚拟视图,类似于镜像仓库,也许还包含以下镜像:

    用户1470379

扫码关注云+社区

领取腾讯云代金券