Docker ialah platform kontena aplikasi popular yang mempercepatkan membina, mengatur dan mengurus aplikasi. Walau bagaimanapun, apabila menjalankan aplikasi menggunakan Docker, kami mungkin menghadapi beberapa masalah yang tidak dijangka, yang memerlukan melihat log permulaan Docker untuk memahami punca masalah. Jadi, bagaimana untuk melihat log permulaan Docker?
Docker menyediakan log docker arahan terbina dalam yang boleh digunakan untuk melihat output standard dan output ralat standard dalam bekas. Untuk menggunakan arahan ini, anda boleh melihat ID atau nama bekas yang sedang berjalan dahulu, yang boleh dilihat melalui arahan ps docker:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8623f22d0b74 nginx "nginx -g 'daemon of…" 10 days ago Up 2 hours 80/tcp web
Dalam output di atas, ID kontena ialah 8623f22d0b74 dan bekas nama ialah web. Anda boleh menggunakan arahan log docker untuk melihat output log dalam bekas:
$ docker logs 8623f22d0b74 172.17.0.1 - - [02/May/2020:19:41:04 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-" 172.17.0.1 - - [02/May/2020:19:41:06 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-"
Dalam output di atas, kita boleh melihat log akses pelayan NGINX Perintah ini hanya boleh membantu kami mencari permulaan masalah bekas.
Selain menggunakan arahan log docker, kami juga boleh menggunakan perintah acara docker untuk melihat acara permulaan Docker. Perintah ini boleh memerhatikan semua peristiwa yang dipancarkan oleh Docker dan mengeluarkan maklumat yang sepadan. Sebagai contoh, kita boleh menggunakan arahan berikut untuk melihat semua acara larian Docker:
$ docker events ... 2020-05-02T19:44:07.842095081+00:00 container destroy 8623f22d0b746eee40b1568a78ffdf2f1555a9c5b557d8c5a5a5eaa32c7f1ede (image=nginx, name=web) 2020-05-02T19:44:08.273816081+00:00 network disconnect 6cbedee6e77d 03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7 (endpoint=03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7, name=bridge, type=bridge) 2020-05-02T19:44:09.260029423+00:00 network destroy 6cbedee6e77d (name=bridge)
Dalam output di atas, kita boleh melihat peristiwa pemusnahan bekas, peristiwa pemotongan rangkaian dan peristiwa kemusnahan rangkaian. Perintah ini boleh membantu kami memahami peristiwa lain bekas Docker.
Semua log untuk bekas Docker disimpan dalam sistem fail bekas. Oleh itu, kita boleh melihatnya menggunakan alat melihat fail biasa seperti kucing, ekor atau grep. Contohnya, jika anda ingin melihat log sistem bekas, anda boleh menggunakan arahan berikut:
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 /var/lib/docker/containers/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10-json.log
Arahan ini akan mengeluarkan laluan fail log bekas. Kita boleh terus menggunakan arahan ekor untuk melihat beberapa baris terakhir fail log:
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 | xargs tail -f ...
Dalam output di atas, kita boleh melihat output log masa nyata bekas. Anda boleh menggunakan pintasan Ctrl-C untuk berhenti melihat log.
Ringkasan
Pengurusan log Docker ialah proses yang kompleks, tetapi dengan menggunakan arahan terbina dalam yang disediakan oleh Docker, kami boleh melihat masalah yang berlaku dalam bekas dengan mudah. Dengan menggunakan arahan log docker, perintah acara docker atau melihat fail log kontena, kami boleh mengikuti perkembangan status larian kontena Docker, memberikan sokongan kuat untuk mengatur dan mengurus aplikasi Docker.
Atas ialah kandungan terperinci Bagaimana untuk melihat log permulaan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!