Docker’a Giriş 3

Emre Emanet
3 min readOct 19, 2022

Logging — Uygulama Günlükleri

Servis ve uygulamalar adım adım hangi işlemleri gerçekleştirdiğini ve adımlardan birinde hata alırsa hangi adımda hata aldığını gösteren, kısacası servisler ve uygulamalar ile ilgili bize bilgi sunan sistemlere logging denir.

Bir container’ın loglarına bakmak için:

docker logs containeradi

Anlık olarak loglara bakmak istiyorsak:

docker logs -f containeradi

Örnek:

➜  ~ docker run -d --name nginx -p 80:80 nginx
02c05636f201275f8a08ae1738f98a3094e40c97f3aede0c39ebfd8455d2f807
➜ ~ docker logs nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/09/01 13:37:20 [notice] 1#1: using the "epoll" event method
2022/09/01 13:37:20 [notice] 1#1: nginx/1.23.1
2022/09/01 13:37:20 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2022/09/01 13:37:20 [notice] 1#1: OS: Linux 5.10.102.1-microsoft-standard-WSL2
2022/09/01 13:37:20 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/09/01 13:37:20 [notice] 1#1: start worker processes
2022/09/01 13:37:20 [notice] 1#1: start worker process 31
2022/09/01 13:37:20 [notice] 1#1: start worker process 32
2022/09/01 13:37:20 [notice] 1#1: start worker process 33
2022/09/01 13:37:20 [notice] 1#1: start worker process 34
2022/09/01 13:37:20 [notice] 1#1: start worker process 35
2022/09/01 13:37:20 [notice] 1#1: start worker process 36
2022/09/01 13:37:20 [notice] 1#1: start worker process 37
2022/09/01 13:37:20 [notice] 1#1: start worker process 38
172.17.0.1 - - [01/Sep/2022:13:37:27 +0000] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
2022/09/01 13:37:27 [error] 32#32: *2 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "127.0.0.1", referrer: "http://127.0.0.1/"
172.17.0.1 - - [01/Sep/2022:13:37:27 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
172.17.0.1 - - [01/Sep/2022:13:37:35 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
172.17.0.1 - - [01/Sep/2022:13:37:36 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
172.17.0.1 - - [01/Sep/2022:13:37:37 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
➜ ~

Linux işletim sistemi ilk açıldığında kullanıma 3 adet aygıt açar. Bu aygıt standart input (stdin), standart output (stdout) ve standart error (stderr) olarak adlandırılır. Herhangi bir komut yazdığınızda eğer bizden bir input bekliyorsa (stdin)’den bilgi alacaktır. Eğer bir komutun çıktısı olacak ise yazdığı yer stdout olacaktır. Bir komut hata alması durumunda yazacağı yer ise stderr’dir.

➜  ~ docker exec -it 860073212a38 /bin/bash
root@860073212a38:/# cd /var/log/nginx/
root@860073212a38:/var/log/nginx# ls -l
total 0
lrwxrwxrwx 1 root root 11 Aug 23 03:59 access.log -> /dev/stdout
lrwxrwxrwx 1 root root 11 Aug 23 03:59 error.log -> /dev/stderr
root@860073212a38:/var/log/nginx#

Yukarıda stdout ile standart output /dev/stdout’a, error mesajları da sterr ile /dev/sterr ile belirtilmektedir.

Logun detaylarını görmek istersek:

➜ ~ docker logs — details web

Bazı uygulamalar loglarına zaman damgası basmazlar. Logların ne zaman basıldığını görmek istersek:

➜ ~ docker logs -t web
2022–09–02T12:05:45.548642123Z 2022/09/02 12:05:45 [error] 31#31: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "127.0.0.1", referrer: "http://127.0.0.1/"
2022–09–02T12:05:45.548707438Z 172.17.0.1 - - [02/Sep/2022:12:05:45 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
2022–09–02T12:05:47.615247723Z 172.17.0.1 - - [02/Sep/2022:12:05:47 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"
2022–09–02T12:05:48.555415010Z 172.17.0.1 - - [02/Sep/2022:12:05:48 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "-"

Logları belirli bir zamana kadar oluşan kısmına kadar görmek istersek

docker logs - until 2022–09–02T12:05:36.597555766Z containeradi

Logları şu saatten sonra göster demek istersek:

docker logs — since 2022–09–02T12:05:36.597555766Z containeradi

Son 5 satır logu görmek istersek:

docker logs — tail 5 containeradi

Canlı olarak anlık logları görmek istersek:

docker logs -f containeradi

--

--

No responses yet