[Docker] 과도한 Docker log 용량 해결

bada·2024년 9월 11일

Trouble Shooting

목록 보기
5/10

문제 발생

갑자기 나의 맥북에 용량이 부족하다는 알람이 떴다. 나는 처음에 무슨 광고 사이트 들어가서 뜬 광고성 이벤트인줄 알았다. 그런데 System Settings에 들어가보니 진짜 용량 부족 현상었다. 분명 며칠 전에 300GB의 여유가 있는 걸 확인했는데... 갑자기 무슨 System Data를 390GB 이상 쓸 일이 있었던 것도 아니다.


믿기지 않아서 Disk Utility를 들어가보았다. 가득차있었다. (당연함)


문제 원인

문제의 원인은 ~/Library/Containers/com.docker.docker/Data/ 디렉토리였다.
며칠 전 Docker 실습으로 몇가지 컨테이너를 만들었는데 그 컨테이너의 로그파일들이 쌓인 것이었다.

해당 디렉토리에는 Docker Desktop의 다양한 데이터가 저장 되는데 이 중 log 디렉토리 내의 log 파일들이 300기가가 넘게 저장되어 있던 것.

그 중 host 디렉토리만 300GB가 넘었다.(중간에 삭제 진행중이었는데 이건 기록으로 남겨야 할 것 같아 스탑 후 캡쳐했다.)

문제 해결

일단 log 파일을 싹 다 삭제 후 쓰레기통까지 비웠다. 정말이지 속이 뻥 뚫리는 순간.

실시간으로 System Data가 줄어드는데 왜 이렇게 기분이 좋은건지.

하지만 근본적인 원인은 해결해야한다. 나는 도커 컨테이너의 로그파일 용량을 제한할 수 있는 설정방법을 찾아야 했다.

그런데 조금씩 방식이 다르고 우선적으로 어느 위치에 설정파일을 저장해야하는 지를 모르겠다.
일단 나의 경우는 hombrew cask로 Docker Desktop을 다운받은 상황이었고 내가 설정한 방식은 아래와 같다.

  1. 문제가 발생한 ~/Library/Containers/com.docker.docker/Data 이 위치에 docker-demon.json 이라는 설정파일을 생성한다.

    왜 json파일인지?

    Docker의 기본 로그 드라이버가 json-file 이라고 한다. 내 도커의 로그 드라이버를 알고 싶다면, 아래 명령어로 docker의 여러 가지 설정을 확인 할 수 있다.
    나의 경우는 조회해 보면 Logging Driver: json-file 라는 걸 확인할 수 있었다.

    docker info
  2. docker-demon.json 파일에 아래처럼 적어준다.

    {
     "log-opts": {
       "max-size": "100m",
       "max-file": "20"
     }
    }

    max-size는 로그 파일의 최대 크기를, max-file은 유지할 로그 파일의 최대 개수를 설정할 수 있다.

  3. Docker Desktop을 종료 후 재시작한다.
    별 것 아니지만 명령어로 docker desktop 시작이 가능하다. 종료는 강제종료나 특정 키워드를 사용하는데 복잡해서 패스.

open -a Docker

이렇게 설정을 했지만 제대로 적용이 됐는지 확인을 하지 못했다. 추후 사용하다가 계속 과도하게 로그 파일들이 쌓인다면 다시 설정하는 방식을 추가하겠다.


+ 추가

Docker desktop의 Settings > Resources 에서 도커 이미지 사이즈를 조절할 수 있다. 나의 경우에는 Virtual disk limit이 64GB로 되어 있었다. 8GB로 줄여주었다.

profile
하루 세번 목 당기기

0개의 댓글