갑자기 나의 맥북에 용량이 부족하다는 알람이 떴다. 나는 처음에 무슨 광고 사이트 들어가서 뜬 광고성 이벤트인줄 알았다. 그런데 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을 다운받은 상황이었고 내가 설정한 방식은 아래와 같다.
문제가 발생한 ~/Library/Containers/com.docker.docker/Data 이 위치에 docker-demon.json 이라는 설정파일을 생성한다.
Docker의 기본 로그 드라이버가 json-file 이라고 한다. 내 도커의 로그 드라이버를 알고 싶다면, 아래 명령어로 docker의 여러 가지 설정을 확인 할 수 있다.
나의 경우는 조회해 보면 Logging Driver: json-file 라는 걸 확인할 수 있었다.
docker info
docker-demon.json 파일에 아래처럼 적어준다.
{
"log-opts": {
"max-size": "100m",
"max-file": "20"
}
}
max-size는 로그 파일의 최대 크기를, max-file은 유지할 로그 파일의 최대 개수를 설정할 수 있다.
Docker Desktop을 종료 후 재시작한다.
별 것 아니지만 명령어로 docker desktop 시작이 가능하다. 종료는 강제종료나 특정 키워드를 사용하는데 복잡해서 패스.
open -a Docker
이렇게 설정을 했지만 제대로 적용이 됐는지 확인을 하지 못했다. 추후 사용하다가 계속 과도하게 로그 파일들이 쌓인다면 다시 설정하는 방식을 추가하겠다.
Docker desktop의 Settings > Resources 에서 도커 이미지 사이즈를 조절할 수 있다. 나의 경우에는 Virtual disk limit이 64GB로 되어 있었다. 8GB로 줄여주었다.
