Docker:Dockerfile指令简介

本文详细介绍了Dockerfile中的主要指令,包括FROM、RUN、ADD、COPY等,强调了每条指令会创建一层layer,建议避免过多层以优化性能。同时,提到了指令的使用场景和注意事项,如如何合并RUN命令,ADD与COPY的区别,以及CMD和ENTRYPOINT的配合使用。
摘要由CSDN通过智能技术生成

注意:本文内容基于docker 18.03.0-ce

Dockerfile中每一条指令都会建立一层layer,UnionFS是有层数上限的(大多为128层)。 层数过多会导致数据读取减慢(UnionFS简介),所以在Dockerfile中相同命令尽量进行合并(COPY/ADD除外)。
PS:Dockerfile执行中不区分指令的大小写,但一般默认都是用大写。

FROM

格式:

FROM <image> [AS <name>]
FROM <image>[:<tag>] [AS <name>]
FROM <image>[@<digest>] [AS <name>]

指定基础镜像,是Dockerfile中必备的一条指令。后续的指令都是在基础镜像的基础上进行操作。其中基础镜像可以是DockerHub中的公开镜像,也可以是私有制做的镜像。如果想从头开始搭建的话,可以使用空镜像scratch,即你的操作是从第一层镜像上开始的。scratch所适用于不需要以操作系统为基础,所有库都已存在于可执行文件中了的对象。

RUN

格式:

RUN cmd arg1 arg2
RUN ["executable", "arg1", "arg2"]

执行命令行命令,是Dockerfile中最常用的一条指令。 因为Dockerfile中每一条命令都会对应一层layer,为了避免层数过多,可以将多条命令合并,例如shell格式,多条命令可以通过&&进行组合。
下面就是一条RUN命令:

RUN apt-get update && \
apt-get -y install \
openssh-server \
sudo \
procps \
wget \
unzip \
mc \
ca-certificates \
curl \
software-properties-common \
python-software-properties && \
mkdir /var/run/sshd 

AUFS是RUN执行rm 可能会产生bug

ADD

格式:

ADD [--chown=<user>:<group>] <src>... <dst>
ADD [--chown=<user>:<group>] ["<src>",... "<dst>"]

ADD将来src定义的源文件,源目录或者远程文件(URL),复制到dst指定的路径。其中--chown仅对linux的con

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值