cari

Rumah  >  Soal Jawab  >  teks badan

dockerfile中CMD和ENTRYPOING真正的区别

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

世界只因有你世界只因有你2852 hari yang lalu873

membalas semua(2)saya akan balas

  • 黄舟

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

    Bezanya ialah ENTERPOINT tidak akan ditimpa, tetapi CMD akan ditimpa.

    Sebagai contoh, laksanakan yang sama docker run -it --rm <image_name> hello world

    Jika ia ENTERYPOINT ["/bin/bash"] maka arahan sebenar untuk dijalankan ialah /bin/bash hello world

    Jika ia CMD ["/bin/bash"] maka arahan sebenar dijalankan ialah hello world.

    Iaitu, arahan semasa menjalankan bekas diluluskan sebagai parameter ENTERYPOINT apabila menggunakan CMD, CMD diganti secara langsung.

    Jadi terdapat cara yang rumit untuk menggunakan kedua-duanya dalam fail docker:

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

    Dengan cara ini, pengguna bukan sahaja boleh menyesuaikan parameter untuk memulakan mongod, tetapi juga menggunakan --help untuk memaparkan maklumat bantuan secara lalai apabila tiada parameter ditentukan

    balas
    0
  • PHP中文网

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

    Semak log dahulu

    balas
    0
  • Batalbalas