Rumah > Artikel > Operasi dan penyelenggaraan > Docker tidak menemuinya dalam log
Docker ialah teknologi kontena yang popular yang boleh menjalankan berbilang aplikasi pada satu hos. Walau bagaimanapun, anda mungkin menghadapi beberapa masalah semasa menggunakan Docker, seperti menyemak log bekas yang sedang berjalan tetapi tidak menemui sebarang rekod. Soalan ini mungkin mengelirukan anda kerana menjalankan kontena pasti akan menghasilkan pembalakan.
Jadi, mengapa anda menghadapi masalah tidak dapat mencari log apabila melihat log dalam Docker? Artikel ini akan menerangkan dan membincangkan aspek-aspek berikut.
Pemacu pembalakan yang digunakan oleh Docker adalah sangat penting kerana ia boleh menjejaskan pengelogan dan tontonan. Secara lalai, Docker menggunakan pemacu fail json, yang menulis output standard kontena dan output ralat standard ke dalam fail JSON dan menyimpannya dalam direktori /var/lib/docker/containers/ hos Docker.
Jika anda menggunakan pemacu log lain, seperti syslog atau journald, maka anda perlu memberi perhatian kepada ciri dan penggunaan pemacu log ini. Apabila menggunakan pemacu log bukan lalai, anda perlu mengesahkan sama ada log yang dibenarkan oleh pemandu direkodkan dengan betul. Jika tidak, anda mungkin menghadapi masalah mencari log.
Dalam Docker, log boleh dikelaskan mengikut tahap log yang berbeza. Secara lalai, Docker akan merekodkan log pada tahap INFO dan ke atas Jika tahap log yang anda gunakan ialah DEBUG atau lebih rendah, maka anda perlu menyemak sama ada format pengelogan dalam Docker ditetapkan dengan betul untuk konfigurasi log anda.
Oleh itu, anda perlu menentukan tahap log dan format pengelogan yang digunakan oleh aplikasi anda, dan semak sama ada pemacu pengelogan Docker serasi dengannya. Jika ia tidak konsisten, anda perlu melaraskannya pada tahap dan format yang sama seperti pemacu pengelogan Docker.
Apabila anda menjalankan bekas, persekitaran bekas itu sendiri mungkin menjejaskan pembalakan dan tontonan. Sebagai contoh, bergantung pada konfigurasi bekas itu sendiri, ia mungkin membaca output standard atau ralat standard ke lokasi yang berbeza daripada lokasi lalai pemacu log Docker.
Selain itu, mungkin terdapat beberapa isu persekitaran bekas, seperti bekas tidak menetapkan kebenaran fail dengan betul atau ruang storan bekas penuh. Isu persekitaran kontena ini boleh memberi kesan kepada pembalakan dan tontonan.
Akhir sekali, perlu dinyatakan bahawa pengelogan Docker juga mempunyai had tertentu. Sebagai contoh, Docker hanya log keluaran standard dan output ralat standard bekas secara lalai, tidak termasuk log lain di dalam bekas. Selain itu, pembalakan sebelum kontena dimulakan atau selepas kontena dihentikan boleh mengakibatkan pembalakan tidak lengkap.
Oleh itu, jika anda memerlukan pengelogan yang lebih komprehensif, anda mungkin perlu menggunakan alat pengumpulan log pihak ketiga, seperti ELK, Fluentd atau Splunk, dsb., untuk mencapai pengelogan dan visualisasi yang lebih komprehensif.
Ringkasan
Docker ialah teknologi kontena popular yang menyediakan pelbagai cara untuk melihat log bekas yang sedang berjalan. Apabila melihat log dalam Docker, anda perlu memberi perhatian kepada pemacu log Docker, tahap log dan format pembalakan, isu persekitaran kontena dan batasan pengelogan Docker. Dengan meneliti aspek ini dengan teliti, anda boleh mencari dan menyelesaikan isu pengelogan dalam Docker dengan lebih berkesan. Pada masa yang sama, anda juga perlu menganggap log sebagai bahagian penting dalam meningkatkan kestabilan dan keselamatan aplikasi kontena, dan menggabungkan konfigurasi dan pemantauannya ke dalam pelan pengurusan kontena anda pada bila-bila masa.
Atas ialah kandungan terperinci Docker tidak menemuinya dalam log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!