• 首页

  • 分类&标签

  • 归档

  • 手册

  • 项目池

  • 友链

  • 关于
伯 乐 讲 堂
伯 乐 讲 堂

查看「系列思维导图」

侠客 · Mr.潘

获取中...

05
09
企业级系统环境
其他

Dockerfile 书写原则

发表于 2022-05-09 • 企业级系统环境 Docker • 被 221 人看爆

1. 单一职责

不同功能的应用尽量拆分为不同的容器,每个容器只负责单一业务进程

2. 良好代码风格

晦涩难懂的指令尽量添加注释

3. 最小化原则

尽量避免安装无用的软件包

4. 合理选择基础镜像

容器的核心是应用,只要基础镜像能够满足应用的运行环境即可

5. 使用 .dockerignore 文件

规则含义
## 开头的表示注释,# 后面所有内容将会被忽略
/tmp匹配当前目录下任何以 tmp 开头的文件或者文件夹
*.md匹配以 .md 为后缀的任意文件
tem?匹配以 tem 开头并且以任意单个字符结尾的文件
!README.md! 表示排除忽略

6. 尽量使用构建缓存

image.png

7. 正确设置时区

Ubuntu 和 Debian

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" >> /etc/timezone

CentOS

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

8. 使用国内软件源加快镜像构建速度

Ubuntu

RUN sed -i 's/archive.ubuntu.com/mirrors.163.com/g' /etc/apt/sources.list

Debian

RUN sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list && apt-get update

CentOS

# 对于 CentOS 7
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \
	-e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.163.com|g' -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

# 对于 CentOS 8
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \
	-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.163.com/centos|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

9. 最小化镜像层数

标题:Dockerfile 书写原则
作者:侠客 · Mr.潘

读后有收获可以支付宝请作者喝咖啡,读后有疑问请加在下微信(pansfy)讨论:

VSCode Python 文档注释
侠客 · Mr.潘

侠客 · Mr.潘

未来的你,会感谢今天仍正在奋斗的你

Github QQ Email RSS
看爆 Top10
  • 助力项目池 3,538次看爆
  • 第 4 节 yum 版的 LAMP 环境部署 2,535次看爆
  • 你的生产力工具集成就高效人士 1,880次看爆
  • 第 5 节 yum 版的 LNMP 环境部署 1,676次看爆
  • 第 3 节 企业级系统环境之上云篇 1,387次看爆
  • 服务端的架构的演进之路 1,284次看爆
  • 第 1 节 Docker 实践 1,190次看爆
  • 镜像仓库一文打尽 982次看爆
  • Docker本地私有镜像仓库Harbor搭建及配置 980次看爆
  • 第 6 节 源码版的LAMP环境部署 944次看爆

Copyright © 2023 侠客 · Mr.潘 · 苏ICP备19067937号

Proudly published with Halo · Theme by fyang · 站点地图