[Docker] Log
Docker์์ ๋ก๊ทธ๋ฅผ ์กฐํํ๋ ๋ฐฉ๋ฒ๊ณผ, ์ ์ฅ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ ๋ฑ์ ์ ๋ฆฌํด๋ณธ๋ค.
๋์ปค ๋ก๊ทธ ์กฐํ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ก๊ทธ๋ logs ๋ช ๋ น์ ํตํด์ ์กฐํํ ์ ์๋ค.
docker logs ์ปจํ
์ด๋ID

๋์์ 10์ค๋ง ๋ณด๊ณ ์ถ๋ค๋ฉด tail ํ๋๊ทธ๋ฅผ ์ฃผ๋ฉด ๋๊ณ

์ค์๊ฐ์ผ๋ก ์์ด๋ ๋ก๊ทธ๋ฅผ tailingํ๋ ค๋ฉด -f ํ๋๊ทธ๋ฅผ ์ฃผ๋ฉด ๋๋ค.

๋ก๊ทธ ํ์ผ์ ์์น
๋ก๊ทธ ํ์ผ์ ์์น๋ ์ค์น ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ค. ์ ํํ ์์น๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์, ์ปจํ
์ด๋ ์ ๋ณด๋ฅผ ์ง์ ๊น๋ณด๋ ๊ฒ์ด๋ค.
๋ค์ ๋ช
๋ น์ด๋ก ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ
sudo docker inspect ์ปจํ
์ด๋ID --format "{{.LogPath}}"

๊ทธ ๊ฒฝ๋ก๋ฅผ ๊น๋ณด๋ฉด ๋ก๊ทธํ์ผ๊ณผ ์ก๋คํ ๋ฉํ๋ฐ์ดํฐ ๊ณ์ด์ ํ์ผ๋ค์ด ํจ๊ป ๋ค์ด์๊ณ

๋ก๊ทธ๋ ์ด๋ฐ ์์ผ๋ก ์ ์ฅ์ด ๋์ด์์ ๊ฒ์ด๋ค.
Log Driver ๊ด๋ฆฌ
docker์ ๊ธฐ๋ณธ ๋ก๊ทธ์์คํ ์๋ ๊ฝค ํฐ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ์๋ฌด๋ฐ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.
retention์ด๋ rotation ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์ค์ ๋ ์๊ธฐ ๋๋ฌธ์, ์ปจํ ์ด๋์์ ์๋ ๋ก๊ทธ๋ ์ธ์ ๋ append-only๋ก ์์ด๊ธฐ๋ง ํ๋ค. ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ค๊ณ ํด์ ๋ก๊ทธ๋ฅผ ์ ๋ฆฌํ์ง๋ ์๋๋ค.
๊ทธ๋์ ์ง์ Docker๋ฅผ ์ ์ดํด์ ์์คํ ์ ๊ตด๋ฆด ๊ฒฝ์ฐ์๋ ๋ก๊ทธ driver ์ค์ ์ ๊ฑด๋๋ ค์ค ํ์๊ฐ ์ด๋ ์ ๋ ์๋ค.
์ผ๋จ, docker๋ ๊ธฐ๋ณธ์ ์ผ๋ก json-file์ด๋ผ๋ ๋ก๊ทธ ๋๋ผ์ด๋ฒ๋ฅผ ์ด๋ค.
์ด๊ฑด rotation ๊ฐ์ ๊ธฐ๋ฅ๋ ์๊ณ , ๋ฆฌํ
์
์ผ๋ก ์๋ ์ ๋ฆฌํ๊ฑฐ๋ ํ๋ ๊ธฐ๋ฅ๋ ์๋ ๊ตฌ๋ฆฐ ๋๋ผ์ด๋ฒ๋ค.
์ด๊ฒ ๊ธฐ๋ณธ๊ฐ์ธ ์ด์ ๋ ๋ฑํ ์ด๊ฒ ์ข์์๊ฐ ์๋๋ผ, ๋จ์ํ ํ์ํธํ์ฑ ๊ฐ์ ๊ฒ ๋๋ฌธ์ด๋ค.
๋์คํฌ ๊ด๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ๊ณ ์ถ๋ค๋ฉด local ๋๋ผ์ด๋ฒ๋ฅผ ์ฐ๋๊ฒ ๊ถ์ฅ๋๋ค.
์ ์ญ ์ค์ ์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋จผ์ daemon.json ํ์ผ์ ์์น๋ฅผ ์ฐพ๋๋ค.
ps aux | grep dockerd
๊ทธ๋ผ ์ config-file์ ์ด์ด์

{
"log-driver": "local",
"log-opts": {
"max-size": "100m"
}
}
๊ฐ์ ์ ๋นํ ์ด๋ฐ ์์ผ๋ก ์์ ํด์ค๋ค.
์ด๋ฌ๋ฉด ์ปจํ
์ด๋๋ง๋ค ์ต๋ 100mb๋งํผ์ ๋ก๊ทธ๋ฅผ ๋ณด๊ดํ๊ณ , ๊ทธ ์ด์์ ๋ฒ๋ฆฌ๊ฒ ๋ค๋ ๋ป์ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ docker๋ฅผ ์ ๋นํ ์ฌ์์ํ๋ฉด
sudo systemctl restart snap.docker.dockerd
์ด์ ๋ถํฐ๋ ๊ธฐ๋ณธ ๋๋ผ์ด๋ฒ๊ฐ local์ด ๋๊ณ , ๋ก์ปฌ ๋๋ผ์ด๋ธ์ ์ํด์ ๋ก๊ทธ ์ ๋ฆฌ๊ฐ ์ด๋ ์ ๋ ๋ ๊ฒ์ด๋ค.
๊ธ๋ก๋ฒ ์ค์ ์ ๊ฑด๋๋ฆฌ๊ณ ์ถ์ง ์๋ค๋ฉด ๊ทธ๋ฅ ์ปจํ ์ด๋๋ฅผ ์คํํ ๋ ์ง์ ์ต์ ์ ๋ฃ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
sudo docker run -d --log-driver local --log-opt max-size=50m ubuntu:latest echo hello,world!
์ด๋ฌ๋ฉด ๊ทธ๋ฅ ๋ก์ปฌ ๋๋ผ์ด๋ฒ์, 50mb ํฌ๊ธฐ ์ ํ์ ๊ฐ์ง ์ปจํ
์ด๋๊ฐ ๋ง๋ค์ด์ง๋ค.
๊ทธ๋ฆฌ๊ณ docker compose๋ฅผ ์ฌ์ฉํ ๋๋ logging ํ๋๋ฅผ ํตํด log driver ์ค์ ์ ํ ์ ์๋ค.
์ด๋ฐ ์์ผ๋ก ๋ง์ด๋ค.
์ฐธ์กฐ
https://docs.docker.com/engine/logging/configure/
https://docs.docker.com/engine/logging/drivers/local/
https://stackoverflow.com/questions/43486505/docker-compose-json-logging-driver-labels-env