您的位置:首页 > 运维架构 > Docker

Docker学习笔记 — Dockerfile最佳实践

2015-05-25 16:38 1011 查看
以下为Dockerfile编写的一些最佳实践总结。

不要在构建中升级版本

不需要在容器中使用apt-get upgrade来升级软件版本,更新可能会经常失败,而且可能会产生不一致的镜像。

使用小型基础镜像

建议使用debian作为基础镜像,会更轻量,足够小并且没有包含任何不需要的包。

使用特定的标签

在指定基础镜像的时候应当标明完整的仓库名和标签,尽量不要使用latest,因为随着时间的变化,latest版本的镜像也会改变,可能会导致Dockerfile出错。

软件安装指令组合

apt-get update与apt-get install应当组合使用,安装多个软件时应该使用\来进行多行编写,例如:

RUN apt-get update && apt-get install -y \
aufs-tools \
btrfs-tools \
build-essential \
curl \
dpkg-sig \
git \
libcap-dev \
libsqlite3-dev \
lxc=1.0* \
s3cmd=1.1.0*


当软件需要指定特定版本的时候使用“=”直接指定。

公开端口

在Dockerfile中你有能力映射私有和公有端口。但是永远不要通过Dockerfile映射共有端口。我们可以在运行容器的时候使用-p参数设置公有端口。

CMD和ENTRYPOINT组合使用

使用CMD和ENTRYPOINT时,应当使用数组语法,不要使用命令语法。

ADD和COPY命令

COPY仅提供本地文件向容器的拷贝,ADD还另外支持拷贝tar包和URL。但是拷贝本地文件时COPY是首选。

参考资料:

Dockerfile最佳实践
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: