오버레이_디스크_영역_사용률_증가

오버레이 디스크 영역 사용률 증가

컨테이너를 기동하고 호스트에서 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/*
로그인하면 댓글을 남길 수 있습니다.
  • 오버레이_디스크_영역_사용률_증가.txt
  • 마지막으로 수정됨: 2024/09/28 09:00
  • 저자 koov