dockerfile中CMD和ENTRYPOING真正的区别
世界只因有你
世界只因有你 2017-04-24 16:00:43
0
2
819

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

世界只因有你
世界只因有你

membalas semua(2)
黄舟

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

Ty80

Semak log dahulu

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan