DockerFile 关键字

本文详细解析了Dockerfile中的关键指令,包括FROM、MAINTAINER、RUN、EXPOSE、WORKDIR、ENV、ADD、COPY、VOLUME、CMD、ENTRYPOINT、ONBUILD等,阐述了各指令的功能和使用场景,为读者提供了全面的Docker镜像构建指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、FROM

FROM:基础镜像,当前新镜像是基于哪个镜像的

2、MAINTAINER

MAINTAINER:镜像维护者的姓名和邮箱地址

3、RUN

RUN:容器构建时需要运行的命令

4、EXPOSE

EXPOSE:当前容器对外暴露的端口号

5、WORKDIR

WORDIR:指定在容器创建后,终端默认登录进来工作目录,一个落脚点

6、ENV

ENV:用来在构建镜像过程中设置环境变量。
举例:ENV MY_PATH /usr/mytest

ENV这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前指定了环境变量前缀一样;也可以在其他指令中直接使用这些环境变量,比如WORKDIR $MY_PATH

7、ADD

ADD:将宿主机目录下的文件拷贝到镜像里面并且ADD命令会自动处理URL和解压tar压缩包

8、COPY

COPY:类似ADD,拷贝文件和目录到镜像中,但是它只是拷贝,不会自动处理URL和解压tar压缩包。COPY将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置。
它的使用方法有两种:COPY src test和COPY ["src","dest"]

9、VOLUME

VOLUME:容器数据卷,用于数据保存和持久化工作

10、CMD

CMD:指定一个容器启动时要运行的命令。dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换。
CMD指令的格式和RUN类似,也是两种格式:
a) shell格式:CMD <命令>
b) exec格式:CMD ['可执行文件',‘参数1’,‘参数2’....]
c) 参数列表格式:CMD ['参数1',‘参数2’...],在指定了ENTRYPOINT指令后,用CMD指定具体的参数。

11、ENTRYPOINT

ENTRYPOINT:指定一个容器启动时要运行的命令。ENTRYPOIT的目的和CMD一样,都是在指定容器启动程序及参数。

区别:CMD和ENTRYPOINT都是指定一个容器启动时要运行的命令,但是 如果dockerfile中可以有多个CMD指令,只有最后一个生效 ,CMD会被docker run之后的参数替换 ;而有多个ENTRYPOINT指令,每个指令都生效,这就是CMD和ENTRYPOINT的区别。

12、ONBUILD(触发器)

当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后,父镜像的onbuild被触发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值