同样是一个脚本,一个用CMD["/opt/setup.sh"],一个用ENTRYPOING["/opt、setup.sh"],此时我都以docker run -d 去启动这个容器,此时用CMD的就可以up起来,但是ENTRYPOING却是Exited,而且他还不能start起来,我查了CMD和ENTRYPOING的区别等资料,都没有发现原因,我现在就想知道就我的这个而言,他的原理是什么?
違いは、ENTERPOINT は上書きされませんが、CMD は上書きされることです。
たとえば、docker run -it --rm <image_name>hello world を実行しますdocker run -it --rm <image_name> hello world
docker run -it --rm <image_name>hello world
docker run -it --rm <image_name> hello world
如果是 ENTERYPOINT ["/bin/bash"] 那么实际运行的命令是 /bin/bash hello world
ENTERYPOINT ["/bin/bash"]
/bin/bash hello world
如果是 CMD ["/bin/bash"] 那么实际运行的命令是 hello world
CMD ["/bin/bash"]
hello world
まずログを確認してください
違いは、ENTERPOINT は上書きされませんが、CMD は上書きされることです。
たとえば、
docker run -it --rm <image_name>hello world
を実行しますdocker run -it --rm <image_name> hello world
如果是
ENTERYPOINT ["/bin/bash"]
那么实际运行的命令是/bin/bash hello world
如果是
CMD ["/bin/bash"]
那么实际运行的命令是hello world
ENTERYPOINT ["/bin/bash"]
の場合、実際に実行されるコマンドは/bin/bash hello world
ですCMD ["/bin/bash"]
の場合、実際に実行されるコマンドはhello world
です。まずログを確認してください