cloud

Docker 컨테이너 로그 관리

kubectl 2023. 9. 27. 22:07
반응형

Docker 컨테이너 로그 관리는 중요한 주제 중 하나입니다. 로그가 무제한으로 쌓이면 서버 디스크 공간 부족 문제가 발생할 수 있습니다. 여기에 몇 가지 관련 정보와 해결 방법을 제공합니다

Docker Logs


로깅 드라이버 및 로그 위치


Docker에서는 컨테이너 및 서비스의 로그를 관리하기 위한 로깅 드라이버를 제공합니다. 기본적으로 Docker는 json-file 로깅 드라이버를 사용하며, 로그는 `/var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log` 경로에 저장됩니다.

로그 파일 크기 관리


Docker 컨테이너의 로그 파일 크기가 무한정으로 커지지 않도록 관리하는 것이 중요합니다. 이를 위해 다음과 같은 방법을 사용할 수 있습니다:

1. 로그 파일 삭제:


더 이상 필요하지 않는 컨테이너를 `docker rm` 또는 `docker-compose down` 명령어로 삭제하면 해당 컨테이너의 로그 디렉터리가 함께 삭제됩니다. 이로써 해당 로그 파일도 삭제됩니다.

2. 로그 파일 크기 조절:


`truncate -s 0 <json-log-file>` 명령어를 사용하여 로그 파일 크기를 0으로 만들 수 있습니다. 이렇게 하면 로그 파일을 비우고 사용 가능한 공간을 확보할 수 있습니다.

3. 로그 스테이션 설정:


Docker의 로그 스테이션 설정을 통해 로그 파일의 최대 크기(`max-size`)와 최대 파일 개수(`max-file`)를 지정할 수 있습니다. 파일 크기가 `max-size`에 도달하면 새 파일로 교체되고, 이전 파일은 숫자를 늘려가며 백업됩니다.

예를 들어, 다음과 같이 Docker Compose 파일에 로그 스테이션 설정을 추가할 수 있습니다:

services:
  myapp:
    image: myapp-image
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: 5


위 설정은 컨테이너의 로그 파일이 10MB 크기에 도달하면 새 파일로 교체하고, 최대 5개의 로그 파일을 유지하도록 합니다. 이를 통해 로그 파일 크기를 관리하고 디스크 공간을 효과적으로 사용할 수 있습니다.

반응형