Docker, çıkılmış bir konteynerin günlüğüne bakar


Yanıtlar:


105

Kullanın docker logs. Aynı zamanda durdurulmuş kaplar için de çalışır ve kabın ana sürecinin tüm STDOUT ve STDERR akışlarını yakalar:

$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def

$ docker ps -a
CONTAINER ID    IMAGE     COMMAND        CREATED             STATUS                     PORTS               NAMES
49daa9d41a24    debian    "echo test"    2 minutes ago       Exited (0) 2 minutes ago                       test

$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World

4
Birkaç saniyede bir yeniden başlatıldığı bir docker yığını için: stack=s1 && c=$(task_id=$(docker stack ps "$stack" --filter desired-state=shutdown | tail -n +2 | head -n 1 | awk '{print $1}') && docker inspect --format '{{.Status.ContainerStatus.ContainerID}}' "$task_id") && docker logs "$c"Yığın adı, komutun başında belirtilir.
— x-yuri

17

docker logs --tail=50 <container id> son elli satır için - konteyneriniz uzun süredir çalışıyorsa kullanışlıdır.


1
@Whitefret, cevabı önerinizle güncelledim. Orijinal cevap, tüm günlüğü aşağı çekip yerel olarak takip ederdi, büyük bir kütük ve yavaş bir ağ ile çok uzun bir zaman alırdı
— Matthew

Uyarı yöneticisinde bu mesajların çoğunu görüyorum ancak bunların uyarı ile ilgili olup olmadıklarından emin değilim:
— Arnav Bose

10

Günlükleri, çıkılmış bir kapsayıcıdan bile kopyalamak için aşağıdaki komutu kullanabilirsiniz:

docker cp container_name :path_of_file_in_container destination_path_locally

Örneğin:

docker cp sravya:/tmp/report /root/mylog

6

Çıkılan bir konteynerin günlük dosyasını doğrudan daha az olarak görüntülemek için, dosyanın sonuna kaydırılmış olarak kullanıyorum:

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G

./viewLogs.sh CONTAINERNAME olarak çalıştır

Bu yöntemin docker logstemel yaklaşımlara göre avantajı vardır, dosya akış yerine doğrudan açılır.

Sudo gereklidir, çünkü LogPath / File genellikle köke aittir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.