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