Docker ialah platform kontena popular yang menyediakan banyak ciri cemerlang, seperti pengasingan kontena, penggunaan pantas, dsb. Walau bagaimanapun, apabila menggunakan Docker, kadangkala anda menghadapi beberapa masalah, seperti Docker tidak dapat memulakan semula bekas Ini mungkin salah satu masalah yang dihadapi oleh ramai orang. Artikel ini akan menganalisis sebab mengapa Docker tidak boleh memulakan semula bekas dari pelbagai aspek seperti keluar bekas tidak normal, mula semula kontena automatik dan arahan mulakan semula Docker dan menyediakan penyelesaian.
Kontena keluar secara tidak normal ialah sebab biasa mengapa Docker gagal memulakan semula bekas. Apabila bekas sedang berjalan, disebabkan oleh pelbagai sebab, seperti pengecualian kod, kebocoran memori, dsb., proses kontena mungkin keluar dan mencetuskan enjin Docker untuk mencipta contoh bekas baharu di latar belakang. Jika anda memulakan semula bekas pada masa ini, ia mungkin gagal atau gagal mencapai hasil yang diharapkan.
Untuk situasi ini, perkara terbaik yang perlu dilakukan ialah menyemak log kontena, mengetahui punca pengecualian dan menyelesaikannya. Anda boleh melihat log kontena melalui arahan Docker berikut:
$ docker logs [container_name]
Dengan memerhati log, anda boleh memahami maklumat terperinci semasa proses menjalankan kontena. Jika mesej ralat muncul dalam log, anda boleh mencari penyelesaian berdasarkan mesej ralat, dan kemudian cuba mulakan semula bekas selepas menyelesaikan masalah.
Dalam sesetengah kes, Docker akan memulakan semula bekas secara automatik selepas bekas itu keluar. Ini kerana Docker mempunyai dasar mulakan semula, yang bermaksud apabila bekas keluar secara tidak normal, ia akan cuba memulakan semula bekas. Jika Docker mendapati bahawa bekas itu keluar secara tidak normal beberapa kali, ia akan menganggap bekas itu tidak dapat berfungsi dengan betul dan berhenti mencuba untuk memulakan semula bekas secara automatik.
Dalam kes ini, jika anda ingin menghentikan Docker daripada memulakan semula bekas secara automatik, anda boleh menggunakan arahan berikut:
$ docker update --restart=no [container_name]
Arahan ini akan mematikan dasar mula semula automatik Docker dan keluar secara tidak normal apabila bekas Tiada lagi percubaan dibuat untuk memulakan semula bekas.
Docker menyediakan arahan mulakan semula, yang boleh digunakan untuk memulakan semula bekas. Walau bagaimanapun, kadangkala arahan restart Docker tidak boleh memulakan semula bekas secara normal Ini mungkin kerana bekas tidak ditutup dengan betul. Apabila bekas ditamatkan atau ditutup secara paksa atas sebab yang tidak diketahui, status kontena mungkin menjadi tidak normal, yang boleh menjejaskan operasi berikutnya.
Dalam kes ini, anda boleh mula-mula menggunakan arahan Docker stop untuk menghentikan bekas, dan kemudian gunakan arahan Docker start untuk memulakan semula bekas. Melakukan ini memastikan bekas ditutup dengan anggun dan keadaan boleh dimuat semula semasa dimulakan semula.
Kegagalan Docker untuk memulakan semula bekas adalah masalah yang agak biasa yang boleh diselesaikan melalui kaedah di atas. Mula-mula, anda boleh menyemak log kontena untuk mengetahui punca pengecualian dan menyelesaikan masalah. Kedua, jika Docker memulakan semula bekas secara automatik dan menyebabkan masalah, ia boleh diselesaikan dengan mengubah suai dasar mula semula Docker. Akhir sekali, jika arahan restart Docker tidak dapat memulakan semula bekas seperti biasa, anda boleh mula-mula menggunakan arahan Docker stop untuk menghentikan bekas, dan kemudian gunakan perintah start Docker untuk memulakan semula bekas. Kaedah ini berkesan boleh menyelesaikan masalah Docker tidak dapat memulakan semula bekas.
Atas ialah kandungan terperinci Mengapakah docker gagal memulakan semula bekas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!