Skip to content

Latest commit

 

History

History
18 lines (9 loc) · 1 KB

File metadata and controls

18 lines (9 loc) · 1 KB

ENTRYPOINT

和CMD用法也一样两种格式,唯一要注意的就是区别

CMD和ENTRYPOINT只有一个或者两者都有都可以,容器最终运行的命令为

<ENTRYPOINT> <CMD>

例如我们做个测试

alpine的root目录是没有文件的,所以ls /root没有输出,我们用选项去覆盖住entrypoint可以看到输出了date。注意一点是覆盖entrypoint的时候镜像的CMD会被忽略,我们真要调试的时候需要加command的话,可以在docker run的镜像后面加command和arg。

上面例子可以很形象的证明了是这个关系,最终运行的是**<ENTRYPOINT> <CMD>**,同时不光在docker run的时候覆盖掉CMD,也可以覆盖掉默认的entrypoint。很多时候我们可以主进程bash或者sh进去手动启动看看。老版本接触不多,不确定老版本有没有--entrypoint的选项。

最后如果是/bin/sh的entrypoint会忽略掉CMD和docker run的command参数