Dockerfile之ENTRYPOINT,CMD,RUN
2018-10-16 本文已影响73人
谜00016
我们知道在Dockerfile中有个三胞胎命令,总是让人傻傻分不清,他们就是ENTRYPOINT,CMD,RUN。今天我们就来瞅瞅,他们到底有什么不同,从此彻底告别脸盲症。
举个不恰当的例子,你拷贝了很多小电影,刻录成一张光盘 。这好比就是构建镜像的过程;
RUN 好比 你指定刻录时 拷贝哪部小电影(刻录中 运行);
CMD好比指定光驱插入光盘后,自动播放哪部小电影。但是可以通过外部修改ini文件覆盖掉指令;
ENTRYPOINT 好比指定光驱插入光盘后,自动播放哪部小电影。注意:不可以在外部覆盖掉,除非你重新刻录光盘时 用新的ENTRYPOINT指令覆盖。
from 小电影
RUN 拷贝苍老师1-10集
cmd 插入光驱运行 第二集
docker run 小电影镜像 运行第三集 (这里覆盖了cmd)
继续
from 小电影
RUN 拷贝苍老师1-10集
ENTRYPOINT 插入光驱运行 第3集
docker run 小电影镜像 全屏 //(注意这里,ENTRYPOINT不能给运行命令覆盖,所以 “全屏”这个参数 好比是 插入光驱运行 第3集 同时全屏)
以上是一位很有意思的人打的比方,哈哈,是不是瞬间清晰!!