[Docker] 디스크 용량 차지하는 문제 해결법 2가지

ms-shin·2023년 4월 28일
0
post-thumbnail

서비스를 하면서 도커를 사용하다보니 디스크 용량이 점점 차면서 docker bulid가 안되는 상황을 마주했다. ec2 30GB를 사용했음에도 금방 디스크가 차버리는게 아이러니했다. 구글링 해보니 디크스 용량 확인하는 방법이 있어, 찾아보니 /var/lib/docker/overlay2에 가장 20GB를 차지하고 있었다.

 sudo bash -c 'du -sh /var/lib/docker/*'

overlay2 란?
Docker overlay2는 Docker 컨테이너의 파일 시스템을 관리하는 드라이버 중 하나입니다. overlay2 드라이버는 AUFS(After Union File System)의 후속 제품으로 개발되었으며, 컨테이너 이미지를 계층화하고 여러 계층을 겹치는 방식으로 파일 시스템을 구성합니다.

이 드라이버는 각 이미지 계층을 읽기 전용으로 유지하고, 컨테이너에서 새로운 파일이 생성되면 이전 계층을 수정하지 않고 새로운 계층을 생성합니다. 이를 통해 파일 시스템이 복제되는데, 이것이 컨테이너의 빠른 생성 및 시작을 가능하게 합니다.

또한 overlay2 드라이버는 AUFS에 비해 파일 시스템의 성능이 향상되고, 메모리 사용량이 감소하며, 파일 시스템 크기에 대한 제한이 훨씬 더 높아진다는 이점이 있습니다. 이러한 이유로 overlay2는 현재 Docker에서 가장 일반적으로 사용되는 드라이버 중 하나입니다.

  1. 미사용 리소스 삭제하기

    docker system prune -a -f

아래는 잘 삭제되어 20GB -> 1.4G로 낮아진 상태이다.

2.다른 스토리지를 사용하기
용량을 root path에 작게 잡혀있고, 다른 경로에 크게 잡아놓은 경우는 디렉토리를 변경시켜주는 방법이 있다.
기본적으로는 ubuntu /var/lib/docker가 기본 폴더인데, 다른 외부 경로로 설정파일을 추가하고 다음과 같이 서비스를 재가동 해주면 용량문제를 해결할 수 있다.

{
	"graph":"/ext/docker/"
}
## 해당 폴더 생성
sudo mkdir -p /ext/docker

## 재기동
sudo systemctl stop docker
sudo systemctl start docker

## 위 방식이 안되면 service 명령을 써서 재기동한다
sudo service docker stop
sudo service docker start

추가적으로 카카오엔터프라이즈 기술블로그에서 나온 컨테이너 파일시스템에 대한 블로그를 공부해보려고 한다.
https://tech.kakaoenterprise.com/171

profile
지식을 깊게 파고드는 개발자입니다.

0개의 댓글