ホームページ  >  に質問  >  本文

dockerfile中CMD和ENTRYPOING真正的区别

同样是一个脚本,一个用CMD["/opt/setup.sh"],一个用ENTRYPOING["/opt、setup.sh"],此时我都以docker run -d 去启动这个容器,此时用CMD的就可以up起来,但是ENTRYPOING却是Exited,而且他还不能start起来,我查了CMD和ENTRYPOING的区别等资料,都没有发现原因,我现在就想知道就我的这个而言,他的原理是什么?

世界只因有你世界只因有你2707日前771

全員に返信(2)返信します

  • 黄舟

    黄舟2017-04-24 16:02:43

    違いは、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 です。

    つまり、コンテナを実行するときのコマンドは ENTERYPOINT のパラメータとして渡され、CMD を使用する場合は CMD が直接置き換えられます。

    したがって、dockerfile で両方を使用する難しい方法があります: #🎜🎜# リーリー #🎜🎜#このようにして、ユーザーは mongod を起動するためのパラメーターをカスタマイズできるだけでなく、パラメーターが指定されていない場合に --help を使用してデフォルトでヘルプ情報を表示することもできます#🎜🎜#

    返事
    0
  • PHP中文网

    PHP中文网2017-04-24 16:02:43

    まずログを確認してください

    返事
    0
  • キャンセル返事