专栏首页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镜像仓库的正确打开姿势

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

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

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

    亮哥说TKE
  • TKE操作笔记01

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

    聂伟星
  • 腾讯云TKE-搭建prometheus监控(一)

    业务在使用TKE容器服务过程中,需要对集群情况、节点情况、业务pod情况等进行监控。而当集群规模较大时,业务pod种类繁多,如何进行全面的监控一大痛点。prom...

    赵思晨
  • php应用容器化部署实践

    目前市场上 php 仍有一席之地。本文章将探讨如何将 php 应用容器化并迁移部署到 TKE。

    谢正伟
  • Java应用在docker环境配置健康检查

    在《极速体验docker容器健康》一文已体验了docker容器健康检查功能,今天就来给java应用的容器加入健康检查,使应用的状态随时都可以被监控和查看。

    程序员欣宸
  • TKE镜像仓库使用

    如果您不需要自动化构建的过程,目前就可以使用了,您只需要将您的镜像,打一个tag ,然后login、push到该命名空间下即可!

    蒋经纬
  • OpenFaaS实战之四:模板操作(template)

    如下所示,faas其实就是faas-cli的链接,因此,平时输入命令用faas更简单:

    程序员欣宸
  • 案例 | 信安运维基于 TKE 平台的容器技术实践

    汤英康,腾讯高级工程师、Kubernetes 开源协同 PMC,负责TEG信息安全部的容器化上云相关工作。 引言 截止到2021年5月,TEG 信安运维团队历...

    腾讯云原生
  • 30 分钟快速入门 Docker 教程

    在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理...

    Java技术江湖
  • 30 分钟快速入门 Docker 教程

    在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理...

    用户2781897
  • 9月容器产品技术月报 | 腾讯云原生专题上线啦

    ? 2020年9月 ? ? VOL:05 ? ? ? ? 容器产品新特性 9月上新 ? ? 腾讯云边缘服务TKE Edge 从中心云管理边缘云资源的容器系统 ...

    腾讯云原生
  • 京东mPaaS平台之Android组件化系统私有化部署改造实践

    系统上云是科技企业及传统企业降本增效、协同办公等有效的助力方式。本文将京东mPaaS平台下的Aura平台(Android组件平台)在T-PaaS环境进行私有化部...

    京东技术
  • 使用 Dockerfile 定制镜像

    最近公司项目上线原因,一直加班。没有时间更新文章。隔壁部门需要我提供sdk的打包的支持,所以一直在学习docker。原文 ? 从刚才的 docker commi...

    若与
  • 02 . DockerFile构建镜像和Docker仓库

    注意: Dockerfile的指令是每执行一次都会在docker上新建一层,所以过多无意义的层,会造成镜像膨胀过大,上面提到过,可以用&&符号链接命令,这样执行...

    常见_youmen
  • 谈谈业务容器化——降低接入成本

    本文介绍业务方容器化的成本,同时谈谈如何降低这些成本,从而让容器化过程更为顺畅。业务方的接入成本主要有如下四种:

    哲洛不闹
  • 手把手教你使用 Prometheus 监控 JVM

    roc,腾讯高级工程师,Kubernetes Contributor,热爱开源,专注云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求...

    腾讯云原生
  • Docker学习——创建镜像(四) 顶

    wuweixiang
  • 优化docker镜像的几种方法

    Devops和k8s的火热,越来越多的企业将docker运用到自动化运维中,不管是为了保证开发、测试、生产环境的环境一致性,还是和CI/CD工具的集成度,比如j...

    李俊鹏

扫码关注云+社区

领取腾讯云代金券