Dockerfile中CMD与ENTRYPOINT、ADD 与 COPY 的异同点

CMD与ENTRYPOINT的异同点
这俩命令非常像,而且还可以配合使用。

相同点:

只能写一条,如果写了多条,那么只有最后一条生效。
容器启动时才运行,运行时机相同。


不同点:

ENTRYPOINT不会被运行的command覆盖,而CMD则会被覆盖。
如果我们在Dockerfile中同时写了ENTRYPOINT和CMD,并且CMD指令不是一个完整的可执行命令,那么CMD指定的内容将会作为ENTRYPOINT的参数。如下所示:
FROM ubuntu 
ENTRYPOINT ["rm", "docker2"] 
CMD ["-rf"]
它真正执行的命令将会是:rm docker2 -rf。

如果我们在Dockerfile种同时写了ENTRYPOINT和CMD,并且CMD是一个完整的指令,那么它们两个会互相覆盖,谁在最后谁生效。如下所示:
FROM ubuntu
ENTRYPOINT ["top", "-b"]  
CMD ls -al
那么将执行ls -al,top -b不会执行。

ADD 和 COPY 的异同点

COPY
COPY 是一个相对简单的指令,只负责将文件或目录从构建上下文(通常是 Dockerfile 所在的目录)复制到镜像中的指定路径。

基本用法:

COPY <源路径> <目标路径>
示例

COPY ./src /app/src
ADD
ADD 是一个功能更强的指令,除了执行与 COPY 相同的基本文件复制功能外,还具有以下额外功能:

解压归档文件:如果源路径是一个压缩文件(例如 .tar, .tar.gz, .zip 等),ADD 会自动解压它到目标路径。

从 URL 下载文件:ADD 可以接受一个 URL 作为源路径,从互联网上下载文件到镜像中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值