cmd dockerfile 没有执行_Dockerfile里RUN、CMD、ENTRYPOINT的区别

本文详细介绍了Dockerfile中RUN、CMD和ENTRYPOINT的使用和区别。RUN用于在现有image上创建新层并安装软件;CMD设定默认命令,若指定参数则覆盖;ENTRYPOINT将容器配置为可执行程序。Docker运行时在容器内执行image,可通过shell或exec形式执行RUN、CMD和ENTRYPOINT。在exec形式中,变量不会被解析,而shell形式可以。注意,ENTRYPOINT的参数在docker运行时不会被忽视。
摘要由CSDN通过智能技术生成

看不懂Dockerfile里很痛苦,直到https://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/#:~:text=In%20a%20nutshell&text=CMD%20sets%20default%20command%20and,will%20run%20as%20an%20executable​goinbigdata.com

.这篇文章解释的很清楚

In a nutshellRUN会在现有的基础上新添一层layer,创建一个新的image。(一般用来安装软件包)

CMD 设定默认的command或者参数。在启动docker时没有指定参数会执行,如果指定了就会被覆盖执行。

ENTRYPOINT 将容器配置成一个executable.

Docker images and layers

Docker跑容器时,他在容器内启动了一个image。这个image往往都是通过执行Docker instructions来一层层的往上加layer来执行的。所以说祖宗容器就是最初的Image,每向上加一层就会形成一个新的容器。

Shell and Exec forms

RUN, CMD and ENTRYPOINT 都可以通过 shell或者 exec两种方式来执行。下面先举些例子.

Shell form

例子

RUN apt-get install python3

CMD echo "Hello world"

ENTRYPOINT echo "Hello world"

当这个指令执行时候,他会call /bin/sh -c 来执行调用一个常规的shell 进程。举个具体的例子,在Dockerfile中这么写的话:

ENV name John

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值