Maison  >  Questions et réponses  >  le corps du texte

dockerfile中CMD和ENTRYPOING真正的区别

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

世界只因有你世界只因有你2708 Il y a quelques jours773

répondre à tous(2)je répondrai

  • 黄舟

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

    La différence est que ENTERPOINT ne sera pas écrasé, mais CMD le sera.

    Par exemple, exécutez la même docker run -it --rm <image_name> hello world

    Si c'est le cas ENTERYPOINT ["/bin/bash"] alors la commande à exécuter est /bin/bash hello world

    Si c'est CMD ["/bin/bash"] alors la commande réelle exécutée est hello world.

    C'est-à-dire que la commande lors de l'exécution du conteneur est passée comme paramètre d'ENTERYPOINT ; lors de l'utilisation de CMD, CMD est directement remplacé.

    Il existe donc une manière délicate d'utiliser les deux dans le fichier docker :

    ENTRYPOINT ["mongod"]
    CMD ["--help"]

    De cette façon, les utilisateurs peuvent non seulement personnaliser les paramètres de démarrage de mongod, mais également utiliser --help pour afficher les informations d'aide par défaut lorsqu'aucun paramètre n'est spécifié

    répondre
    0
  • PHP中文网

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

    Vérifiez d'abord les journaux

    répondre
    0
  • Annulerrépondre