Soalan
1. Mengapakah bekas docker tergantung apabila ia berjalan?
Secara lalai, bekas docker akan menggunakan proses pertama di dalam bekas, iaitu program dengan pid=1, sebagai asas untuk sama ada bekas docker sedang berjalan Jika pid bekas docker hang, the bekas docker akan keluar terus.
2. Apabila docker dijalankan, gunakan arahan sebagai arahan dalaman kontena Jika anda menggunakan nginx, maka program nginx akan dijalankan di latar belakang. tetapi bash dilaksanakan. keluar.
Di bawah saya akan menggunakan contoh untuk memberitahu mengapa kami melakukan ini! !
sentuh fail get_pid
echo "pid of this script: $$" echo "ppid of this script: $ppid" echo "uid of this script: $uid" #nginx -g 'daemon off;'
Pada masa ini kita mulakan bekas untuk melaksanakan fail sh ini
odtoy:~ zhaojunlike$ eval `docker-machine env default` godtoy:~ zhaojunlike$ cd workspace/ godtoy:workspace zhaojunlike$ ls docker nodejs php pid_get godtoy:workspace zhaojunlike$ vim pid_get godtoy:workspace zhaojunlike$ docker run -v `pwd`/pid_get:/pid_get:ro --rm --workdir=/ nginx bash /pid_get pid of this script: 1 ppid of this script: 0 uid of this script: 0 godtoy:workspace zhaojunlike$
Selepas bekas melaksanakan pid_get, bekas akan secara automatik exit Pada masa ini, pid semasa bash berjalan dicetak sebagai 1.
Jadi, jika kita mahu bekas tidak ditutup, pelaksanaan bukan daemon adalah satu kemestian, kita juga boleh melaksanakannya di dalam bekas
godtoy:workspace zhaojunlike$ docker run -it nginx bash root@a8baa5fe77f0:/# nginx root@a8baa5fe77f0:/# godtoy:workspace zhaojunlike$
Kami menggunakan parameter -it. Boleh menyambung ke paip di dalam bekas dan kemudian kita menggunakan perintah nginx di dalam bekas. Akhirnya ctrl+p+q
selepas keluar dari bekas, bekas itu masih berjalan.
Atas ialah kandungan terperinci Apakah sebab mengapa docker menggunakan daemon off semasa menjalankan nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!