Docker ialah platform kontena sumber terbuka yang sangat popular, yang menyediakan penyelesaian yang lebih cekap, boleh dipercayai dan selamat untuk penggunaan dan pengurusan aplikasi. Walau bagaimanapun, apabila menggunakan Docker untuk penempatan dan operasi serta penyelenggaraan, kami sering perlu menanyakan fail log semasa proses menjalankan bekas untuk lebih memahami status sistem berjalan, penyelesaian masalah, operasi dan penyahpepijatan penyelenggaraan, dsb. Jadi, di manakah fail log dalam Docker disimpan? Artikel ini akan memberi anda pengenalan terperinci kepada kaedah Docker untuk melihat fail log dan langkah berjaga-jaga yang berkaitan.
1. Lokasi storan lalai bagi fail log Docker
Dalam Docker, setiap bekas akan menjana fail log yang sepadan. Fail log ini disimpan dalam sistem fail bekas secara lalai. Khususnya, Docker mengubah hala output standard kontena (stdout) dan ralat standard (stderr) kepada output standard kontena dan fail ralat standard secara lalai. Fail log ini biasanya terletak dalam direktori berikut:
/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log
di mana $CONTAINER_ID mewakili pengecam unik bagi bekas .
Mengenai penyimpanan log Docker, terdapat beberapa perkara penting:
2. Gunakan Docker CLI untuk melihat fail log kontena
Dalam proses menggunakan Docker untuk pengurusan kontena, kami boleh menggunakan alat baris arahan Docker CLI untuk melihat fail log kontena . Di bawah, kami akan memperkenalkan beberapa arahan CLI Docker asas untuk melaksanakan fungsi melihat log kontena.
Fungsi arahan ini adalah untuk mencetak semua maklumat log bekas yang ditentukan. Antaranya, pilihan PILIHAN boleh menjadi:
-a, --semua: paparan maklumat log semua bekas
-t, --cap masa: paparan cap masa
-f , --follow: Contohnya, kaedah tailf digunakan untuk mengeluarkan log, iaitu log paparan sentiasa disegarkan
--tail=: Bilangan baris log yang ditentukan adalah output bermula dari penghujung daripada fail log. Lalai ialah semua log ($ docker logs -tail all)
--since=: Log output direkodkan selepas masa yang ditentukan, seperti "2019-01-01", atau cap waktu
--until=: Log keluaran direkodkan sebelum masa yang ditentukan Penggunaan log khusus
adalah seperti berikut:
$ docker log CONTAINER_ID
Arahan ini akan memaparkan semua maklumat log bekas yang ditentukan, dengan CONTAINER_ID ialah pengecam unik bekas itu. Jika anda ingin memaparkan N baris terakhir maklumat log bekas, anda boleh menggunakan arahan berikut:
$ log docker --tail N CONTAINER_ID
Jika kita perlu memantau yang sebenar -output log masa bagi bekas pada bila-bila masa, kita boleh menambah pilihan -f Atas:
$ log docker -f CONTAINER_ID
Fungsi arahan ini adalah untuk mendapatkan bekas yang ditentukan Maklumat terperinci, termasuk laluan fail log kontena, status berjalan, alamat IP, pemetaan port dan maklumat lain yang berkaitan. Melalui arahan ini, kita boleh mendapatkan laluan storan lalai bagi fail log bekas, seperti yang ditunjukkan di bawah:
$ docker inspect --format='{{.LogPath}}' CONTAINER_ID
In Selain melihat bekas Selain laluan fail log, arahan ini juga boleh melihat maklumat lain yang berkaitan Penggunaan khusus adalah seperti berikut:
$ docker inspect CONTAINER_ID
3. alatan pihak untuk melihat log Docker
Selain alat CLI Docker, anda juga boleh menggunakan alatan pihak ketiga untuk melihat log Docker dengan lebih mudah. Di sini kami memperkenalkan dua alat tontonan log Docker yang popular:
Karang Docker ialah alat orkestrasi kontena yang disediakan secara rasmi oleh Docker, menyediakan karang docker Fail yang boleh dikonfigurasikan. yml untuk menentukan cara aplikasi berbilang bekas digubah dan dijalankan. Menggunakan Docker Compose untuk penempatan memudahkan anda memulakan berbilang bekas pada satu masa dan mengumpul serta mengurus log pada masa yang sama.
Apabila menggunakan aplikasi menggunakan Docker Compose, anda boleh melihat log kontena melalui arahan log docker-compose. Penggunaan khusus adalah seperti berikut:
$ log karang pelabuhan [SERVICES...]
Antaranya, SERVICES ialah nama perkhidmatan yang ditentukan Secara lalai, log semua perkhidmatan akan dipaparkan.
ELK merujuk kepada gabungan tiga perisian sumber terbuka Elasticsearch + Logstash + Kibana, yang boleh bekerjasama untuk mengumpul, menganalisis dan menggambarkan log. Data log dalam Docker boleh dikumpul melalui Logstash, dan kemudian data log boleh dipindahkan ke Elasticsearch untuk pengindeksan dan mendapatkan semula, dan akhirnya data boleh dipaparkan secara visual melalui antara muka Kibana.
Menggunakan ELK Stack untuk pengumpulan dan visualisasi log Docker memerlukan langkah berikut:
(1) Pasang Docker
(2) Pasang Docker Compose
( 3) Muat turun fail imej ELK Stack: docker pull sebp/elk
(4) Gunakan fail docker-compose.yml untuk memulakan perkhidmatan ELK Stack:
versi: '3.7'
perkhidmatan:
elasticsearch:
kibana :
image: sebp/elk ports: - "9200:9200" volumes: - ./elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml
logstash:
image: sebp/elk ports: - "5601:5601" links: - elasticsearch
(5) Tentukan laluan log Docker dalam fail konfigurasi Logstash:
input {
fail {
image: sebp/elk volumes: - ./logstash:/etc/logstash/conf.d links: - elasticsearch
}
}
tapis {
jika [taip] == "docker" {
}
}
output {
elasticsearch {
path => ["/var/lib/docker/containers/*/*.log"] type => "docker" codec => "json"
}
}
(6) Mulakan semula perkhidmatan Logstash, dan kemudian cari dan paparkan fail log Docker melalui antara muka Kibana.
Ringkasnya, artikel ini memperincikan kaedah melihat fail log dalam Docker, termasuk arahan CLI Docker, alatan pihak ketiga seperti Docker Compose dan ELK Stack. Dengan bantuan alat ini, kami boleh memantau dan menyahpepijat maklumat log bekas Docker dengan lebih mudah untuk memastikan operasi normal aplikasi.
Atas ialah kandungan terperinci Docker menyemak di mana fail log berada. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!