本文主要介绍docker镜像的创建,管理,最佳实践。
最佳实践
- 容器应该是临时性的
- 使用
.dockerignore
文件 - 避免安装不必要的包
- 在一个镜像中只运行一个应用
- 最小化镜像层数
- 使用多行参数排序
Docker 命令
- FROM 推荐使用官方repo来最为最基本的镜像,docker推荐使用debian镜像,
Debian
是文档的发现版,目前debian最新的8镜像也是最小只有125M; - RUN 为了保持Dockerfile的可读性,尽可能在RUN命令中使用多行排序(推荐按字母排序)的参数;
- CMD 尽量为容器指定一个可访问的bash,python 或 perl;
- EXPORE 指定容器监听的端口,应尽量使用公用定义接口例如运行一个web应用应该
EXPORT 80
或EXPORT 8080
; - ENV 设置环境变量;
- USER 如果镜像不需要特殊权限,推荐使用USER创建用户来运行容器
RUN groupadd -r postgres && useradd -r -g postgres postgres
; - WORKDIR 为了保持清醒推荐在WORKDIR中使用绝对路径;
- ONBUILD