Container best practices

查看原文

本文对容器技术的实践做了不少总结,给出了一些最佳实践。

  • multi stages: 删掉构建过程的文件
  • clean up: 删掉构建过程的文件
  • chaining method: 减少 image layer
  • cattle v/s pet containers: kill 后启动可以自动恢复健康的容器叫 cattle,否则是 pet。一般来说,数据库这种 container 算 pet containers。
  • 容器配置要注意的一些坑: /etc/localtime /etc/machine-id 可以 mount 进容器。
  • 容器内应用启动有三种方式:直接启动应用,使用脚本包一层,或者使用 systemd 启动程序。直接启动适合非服务类应用。脚本启动适合稍微复杂一点的程序。systemd 比较适合服务类应用,缺点是会让 image 变大一些。4.5 章节给出了 Dockerfile 中的示例。
  • 如果想用系统的 logging,可以用 -v /dev/log:/dev/log 把 rsyslog 挂到容器里.
  • 数据类容器最好配置下存储数据的上限: --storage-opt size:60 (GB)
  • 给镜像写 help file。