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.