[Docker] 디스크 용량 이슈
개인 운영중인 Docker swarm에서 아래와 같은 메시지로 인해
신규 이미지를 pull할수 없었다.
Error response from daemon: write /var/lib/docker/image/overlay2/.tmp-repositories.json2291754845: no space left on device
1) 리눅스 내 용량 비율 확인
ubuntu@ip-172-31-41-56:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.6G 7.6G 0 100% /
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 190M 21M 170M 11% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/xvda15 105M 6.1M 99M 6% /boot/efi
tmpfs 95M 4.0K 95M 1% /run/user/1000
/dev/root 의 용량이 전부 사용중이다.
좀 더 상세하게 확인하기 위해 도커의 이미지 및 사용중인 용량에 대해 파악하기로했다.
docker system df 는 현재 도커 이미지와 컨테이너, 볼륨의 용량을 얼마나 사용중인지 확인이 가능한 명령어 이며,
-v를 통해 미사용 관련 리소스도 확인 할 수 있다.
확인 해보니 용량을 다 차지할 정도는 아니다
그래도 미사용 하는 리소스에 대한 확인은 했으니, 정리를 해보자
도커에서는 무튼 미사용 리소스에 대한 정리를 빠르게 도와주는 명령어가 있다.
Docker prune를 사용해서 볼륨,이미지,컨테이너의 정리를 할 수있다.
추가로 cron타입으로 도커 컨테이너 내에서 정리를 해주는 스케줄링을 걸어줘서 주기적으로 리소스 관리를 하게끔
설정할 수 있다.
- docker volume prune : 미사용 볼륨 제거
- docker container prune : 미사용 컨테이너 제거
- docker image prune : 미사용 이미지 제거
- docker system prune : 미사용 중인 이미지, 컨테이너, 볼륨 모두 제거
docker system prune 를 사용해서 docker 관련 리소스를 정리했고,
100% -> 93% 로 줄었다.
2) 용량 높고 안쓰는 파일 찾기
du 명령으로 특정 폴더의 용량을 조회할수있다.
해당 명령어로 이동하면서, 특정 용량이 높은 파일을 찾아볼수 있다.
sudo du -sh /home1/* | sort -hr
주로 로그파일이나 tar 파일이면 확인 후에 삭제하면 된다.