일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 경로 계획 알고리즘
- 도커 주의사항
- 구조 패턴
- Playwright
- Go-lang
- github
- Rust
- 오블완
- AWS
- 14일 공부
- MAPF
- Til
- 티스토리챌린지
- amazon ecs
- study
- 실용주의 프로그래머
- AWS 비용 절감
- terraform
- DevOps
- ssh
- 논문 정리
- PostgreSQL
- 생성 패턴
- leetcode
- 디자인 패턴
- 청첩장 모임
- docker
- 지표
- 신혼 여행
- Monthly Checklist
- Today
- Total
밤 늦게까지 여는 카페
[도커 사용 시 주의사항 #1] 로그 드라이버 설정하기 - 로그 용량이 터지지 않도록 주의하세요! 본문
오늘은 도커 사용하면서 놓치기 쉬운 로그 드라이버 설정에 대해서 공부한 내용을 정리해 보겠습니다.
1. 도커 컨테이너의 기본 로깅 방식
만약 여러분이 도커 컨테이너를 실행할 때 로그 드라이버를 따로 지정해주지 않았다면
도커는 컨테이너 별로 실행되고 있는 애플리케이션의 STDOUT, STDERR를 json-file 드라이버를 이용해서 저장하고 있습니다.
그리고 이렇게 저장되는 로그 파일의 용량은 컨테이너가 실행되고 있는 한 무한히 증가할 수 있습니다.
도커 컨테이너를 계속 켜놓고 사용한다면 어느 순간 디스크 용량이 가득 차서 컴퓨터가 뻗어버리게 되는 것이죠 ㄷㄷ
2. 해결 방법
해결 방법은 당연하게도 로그 드라이버를 설정하는 것이겠죠!
로그 드라이버를 설정하는 방법은 크게 1) 컴퓨터 전역적으로 설정하는 방법, 2) 컨테이너 별로 설정하는 방법이 있습니다.
컴퓨터 전역적으로 설정하기 위해서는 /etc/docker/daemon.json 파일을 수정해야 하고
컨테이너 별로 설정하기 위해서는 docker 명령어 혹은 docker compose 파일을 수정해줘야 합니다.
아래에서 서술할 방법들에 모두 적어두겠습니다.
2.1. none 로그 드라이버 사용하기 - 도커 로그 비활성화
약간 과격한 방법으로 도커 컨테이너의 로그를 안 남기는 방법이 있습니다.
- 이렇게 하면 docker logs 명령어를 실행하더라도 아무런 로그가 출력되지 않습니다 ㄷㄷ
컴퓨터 전역적으로 none 로그 드라이버 사용하기
1. 다음과 같이 /etc/docker/daemon.json 파일 작성합니다.
{
"log-driver": "none"
}
2. sudo systemctl docker restart 명령어를 실행해서 도커 서비스를 재실행합니다.
3. 2 다음부터 실행되는 도커 컨테이너들의 로그가 비활성화 됩니다.
- 이전에 실행된 컨테이너들은 재실행 시켜줘야 합니다.
docker 명령어를 이용한 none 로그 드라이버 사용하기
docker run 명령어를 이용할 때 --log-driver none 옵션을 추가해줍니다.
docker compose 파일에서 none 로그 드라이버 사용하기
다음과 같이 docker compose 파일의 서비스 하단에 logging을 추가해줍니다.
version: '3.2'
services:
backend-server:
logging:
driver: 'none'
2.2. json-file 로그 드라이버의 로그 최대 용량 지정하기
가장 무난한 방법으로 기본 로그 드라이버인 json-file 로그 드라이버의 로그 최대 용량을 지정하는 것이 있습니다.
컴퓨터 전역적으로 json-file 로그 드라이버의 로그 최대 용량 지정하기
1. 다음과 같이 /etc/docker/daemon.json 파일 작성합니다.
{
"log-driver": "json-file",
"log-opts": {
"max-size": "1m",
"max-file": "5"
}
}
2. sudo systemctl docker restart 명령어를 실행해서 도커 서비스를 재실행합니다.
3. 2 다음부터 실행되는 도커 컨테이너들의 로그는 최대 5MB까지만 저장됩니다.
- 이전에 실행된 컨테이너들은 재실행 시켜줘야 합니다.
docker 명령어를 이용한 json-file 로그 드라이버의 로그 최대 용량 지정하기
docker run 명령어를 이용할 때 --log-driver json-file --log-opt max-size=1m --log-opt max-file=5 옵션을 추가해줍니다.
docker compose 파일에서 json-file 로그 드라이버의 로그 최대 용량 지정하기
다음과 같이 docker compose 파일의 서비스 하단에 logging을 추가해줍니다.
version: '3.2'
services:
backend-server:
logging:
driver: 'json-file'
options:
max-size: '1m'
max-file: '5'
2.3. local 로그 드라이버 사용하기
도커 공식 문서에 따르면 local 로그 드라이버는 디스크 사용과 성능을 최적화한 로그 드라이버라고 합니다.
컴퓨터 전역적으로 local 로그 드라이버 사용하기
1. 다음과 같이 /etc/docker/daemon.json 파일 작성합니다.
{
"log-driver": "local",
"log-opts": {
"max-size": "5m"
}
}
2. sudo systemctl docker restart 명령어를 실행해서 도커 서비스를 재실행합니다.
3. 2 다음부터 실행되는 도커 컨테이너들의 로그는 최대 5MB까지만 저장됩니다.
- 이전에 실행된 컨테이너들은 재실행 시켜줘야 합니다.
docker 명령어를 이용한 none 로그 드라이버 사용하기
docker run 명령어를 이용할 때 --log-driver local --log-opt max-size=5m 옵션을 추가해줍니다.
docker compose 파일에서 none 로그 드라이버 사용하기
다음과 같이 docker compose 파일의 서비스 하단에 logging을 추가해줍니다.
version: '3.2'
services:
backend-server:
logging:
driver: 'local'
options:
max-size: '5m'
'유용한 툴 > docker' 카테고리의 다른 글
도커 Storage 공부하기 - Storage Driver, Volume, Bind mount (0) | 2025.03.31 |
---|---|
[도커 사용 시 주의사항 #2] 도커 dangling image 관리 (2) | 2025.03.30 |
도커 이미지 태그에는 '/'가 못 들어간다는 것 알고 있으셨나요? (2) | 2025.01.14 |
도커 이미지 멀티 스테이지 빌드 - 도커 이미지 용량 최적화가 필요하신가요? (0) | 2024.10.13 |
도커 명령어 실행 에러 - Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (2) | 2023.01.12 |