오버레이 디스크 영역 사용률 증가
컨테이너를 기동하고 호스트에서 df -hP
로 디스크 사용량을 조회하면 아래와 같이 출력된다.
root@manga:~# df -hP Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 794M 1.3M 793M 1% /run /dev/mapper/manga--vg-root 41G 30G 9.2G 77% / tmpfs 3.9G 84K 3.9G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/mapper/vg_data-lv_data 2.0T 1.3T 613G 68% /data shm 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/993892b32b7d04576891a09db000b360c2a56242c6b49dafd7bd9ec1b0ff1e25/userdata/shm overlay 41G 30G 9.2G 77% /var/lib/containers/storage/overlay/4bf99d6f5b2e2ecc807f64130f93287c14f4b806ac7689fc7bcc8eb9f1b15ac7/merged shm 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/d7bf227bfefb9b0b03912b0babc268f9850439769e4617eb5310a09a20edd1f6/userdata/shm overlay 41G 30G 9.2G 77% /var/lib/containers/storage/overlay/a38810969c25a5561feb80513918ff50fe9aca6307d35355daff961fbdd4f000/merged tmpfs 794M 44K 794M 1% /run/user/0
이렇게 컨테이너의 오버레이 디스크 영역은 호스트의 영역을 공유하여 사용하게 되는데 오버레이 영역의 사용 용량이 점점 늘어나게 되는경우가 있는데 그런경우는 보통 아래와 같다
컨테이너 로그 축적
: 컨테이너가 실행되는 동안 생성되는 로그 파일들이 축적될 수 있습니다. 컨테이너 로그는 삭제하지 않으면 계속 쌓여 디스크 사용량을 증가시킵니다.이미지 레이어 중복
: 컨테이너 이미지가 여러 번 풀리거나 생성되면 중복된 레이어들이 쌓일 수 있습니다. 오버레이 파일 시스템은 레이어를 쌓아가며 공간을 사용하므로, 여러 이미지를 자주 사용할 경우 디스크 사용량이 증가할 수 있습니다.컨테이너 캐시
: 컨테이너 내에서 실행된 파일들(예: 다운로드된 패키지, 임시 파일 등)이 삭제되지 않고 쌓일 수 있습니다.컨테이너 종료 후 정리되지 않은 데이터
: 컨테이너가 종료되었지만, 해당 컨테이너의 데이터나 파일들이 제거되지 않아 디스크를 차지할 수 있습니다.
해결방법
사용하지 않는 컨테이너 및 이미지 제거
사용하지 않는 컨테이너나 이미지를 제거하여 디스크 공간을 확보할 수 있습니다.
# 중지된 모든 컨테이너 제거 docker container prune # 사용하지 않는 모든 이미지 제거 docker image prune -a # 사용하지 않는 네트워크와 볼륨도 정리 가능 docker network prune docker volume prune
로그 관리
컨테이너의 로그 파일을 제한하거나 로그 파일을 주기적으로 삭제하는 스크립트를 설정할 수 있습니다.
# Docker 로그 파일 크기 제한 설정 예시 docker run --log-opt max-size=10m --log-opt max-file=3 <이미지 이름> # 이미 실행 중인 컨테이너의 로그를 삭제할 수 있습니다. truncate -s 0 $(docker inspect --format='{{.LogPath}}' <컨테이너 ID>)
디스크 사용량 확인 및 청소
docker system df
명령어로 Docker 디스크 사용량을 확인하여 어느 부분이 많은 용량을 차지하는지 확인할 수 있습니다.
root@manga:/var/log# podman system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 13 3 24.83GB 20.19GB (81%) Containers 2 2 10.73GB 0B (0%) Local Volumes 2 0 0B 0B (0%)
위의 경우 이미지에서 사용하는 용량이 증가되었으며 회수 가능한(RECLAIMABLE) 용량이 20.19GB가 됩니다.
이는 사용되지 않는 이미지나 불필요한 데이터와 캐시들이 디스크 공간을 차지하고 있다는 의미입니다.
해당 용량만큼 회수를 하려면 아래 명령어를 수행합니다.
1. 사용하지 않는 이미지 제거
podman image prune podman image prune -a
2. 컨테이너 정리
중지된 컨테이너를 제거 합니다.
podman container prune
3. 시스템 전체 청소
시스템의 불필요한 데이터와 캐시를 모두 청소하려면 다음 명령어를 사용할 수 있습니다.
podman system prune -a
임시 파일 정리
컨테이너 내에서 불필요하게 생성된 임시 파일들을 정리해야 할 수 있습니다.
docker exec <컨테이너 ID> rm -rf /tmp/*
로그인하면 댓글을 남길 수 있습니다.