▶︎ 개요
현재 waytothem 사이트 운영 중 도커 볼륨의 용령이 너무 커져서 그 원인에 대해 파악해보고자 한다.
우선적으로 확인해야 되는 사항
- 도커 루트 파일시스템의 용량 현황확인
- Overlay2 파일시스템의 용량이 가장 큰 경우
- Volumes의 용량이 가장 큰 경우
▶︎ 도커 저장 경로 찾기
도커 데이터가 어느 경로에 저장 되는지 docker info
명령어를 활용하여 도커 루트 디렉토리를 찾아보자
$ docker info | grep -i "docker root dir"
Docker Root Dir: /var/lib/docker
‣ 용량 큰 놈 찾기
$ du -sh *
4.0K 2021-12-17-my-first-post.md
4.0K 2022-03-30-docker-volume-fulll-issue.md
12K 2022-05-12-python-coupang-review-crawling.md
4.0K 2022-08-23-docker-nextcloud.md
8.0K 2022-09-12-docker-volume-container.md
4.0K 2022-09-25-docker-compose-http-file-server.md
4.0K 2023-02-01-docker-print-format.md
4.0K 2023-02-17-docker-compose-static-ip.md
8.0K 2023-02-17-docker-compose-web-db-nfs.md
4.0K 2023-02-28-algorithm-1.md
4.0K 2023-02-28-bash-project-1.md
4.0K 2023-02-28-database-1.md
8.0K 2023-02-28-git-pull-request.md
8.0K 2023-02-28-git-repository-commit.md
4.0K 2023-02-28-js-1.md
4.0K 2023-02-28-k8s-1.md
8.0K 2023-02-28-python-paramiko-ssh-config.md
4.0K 2023-02-28-vm-ubuntu-setting.md
4.0K 2023-03-01-git-conflict-solve.md
12K 2023-03-02-create-https-container-1.md
12K 2023-03-02-naverapi-crawling-image.md
16K _site
$ du -h --max-depth=1 2>/dev/null
‣ overlay2
overlay2
가 가장 용량이 클 경우- 백업 같은 역할을 수행하기 위해, 컨테이너 내부 파일 구조의 변경 사항 기록하는
/diff/tmp/
폴더에 용량이 매우 큰 파일들이 존재하는 경우가 많다
/var/lib/docker/overlay2/yxkyzwgsdja0vch7r05f7drdk
$ du -sh */diff/ | sort -k 1 -nr
-> 위 명령어를 통해 용량을 가장 많이 차지하고 있는 컨테이너 디렉토리 찾은 후 , 내부에 있는 /var/lib/docker/overlay2/<컨테이너폴더>diff/tmp
에서
비정상적으로 용량이 큰 파일을 삭제하면 된다. 혹시 모르니 백업을 해두는 것은 필수
‣ 이미지,컨테이너 용량
- 이미지와 컨테이너의 용량이 큰 경우
docker volume
은 일반적으로 컨테이너 내부에서 사용되는 파일들이 그대로 저장되어있는 장소이다- 리눅스와는 별도로
docker volume
은 자체적으로 "휴지통" 개념을 가지고 있어, 파일을 삭제 했을 때 자동으로 Volumes 디렉터리 내부에.Trash
디렉터리로 옮기게 됨.
-> 나는 현재 도커 이미지를 삭제 할 일이 거의 없으므로 , .Trash 파일이 없다.
.Trash파일이 존재하는 경우 rm -rf .Trash* 명령으로 날려주면 된다
▶︎ 번외
‣ 도커 사용량 확인
$ docker system df
‣ 도커 시스템 정리
(이미지 , 컨테이너, 네트워크 정리) (사용하지 않는 모든 컨테이너,모든 활성 볼륨 제거)
$ docker system prune <<< y
‣ 도커 이미지 정리
- 하나 이상의 컨테이너와 연관된 모든 이미지 삭제
$ docker image prune -a
‣ 도커 컨테이너 정리
- 중지된 컨테이너만 삭제
$ docker container prune
‣ 도커 볼륨 정리
- 사용하지 않는 볼륨 제거
$ docker volume prune
$ docker volume remove $(docker volume ls | awk '{print $2}' | grep -v "[A-Z]")