Docker学习笔记 — Dockerfile最佳实践

以下为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最佳实践

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值