티스토리 뷰

반응형

도커를 사용하다보면 사용하는 용량이 점점 커지면서 100% 채우면서 서버 로그인도 안되는 상황이 발생되기도 한다. 이럴때 할수 있는 조치는 크게 2가지가 있다.

 

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

centos 기준 docker 의 기본 경로는 "/var/lib/docker" 인데, 이 하위 폴더에 다양한 임시파일이나 이미지 컨테이너 관련 파일들이 누적되면서 용량이 커지는 문제가 있다. 해당 폴더의 용량을 찾아보면 overlay2 폴더의 용량이 거대해지는 특징이 있는데 이런 경우 아래와 같이 명령어를 입력하면 미사용 리소스를 삭제하면서 용량이 확보된다. overay2 관련 내용이 궁금하면 아래 링크를 좀더 읽어보자.

https://tech.kakaoenterprise.com/171

 

[컨테이너 인터널 #2] 컨테이너 파일시스템

시작하며 안녕하세요. 카카오엔터프라이즈에서 검색서비스를 개발하고 있는 검색클라우드기술파트의 Sam(김삼영)입니다. [컨테이너 인터널 #1] 컨테이너 톺아보기에서 예고해 드린 대로 이번 포

tech.kakaoenterprise.com

 

docker system prune -a -f
$ sudo bash -c 'du -sh /var/lib/docker/*'
72K     /var/lib/docker/buildkit
672K    /var/lib/docker/containers
7.6M    /var/lib/docker/image
52K     /var/lib/docker/network
6.8G    /var/lib/docker/overlay2  <-- 용량이 큰 문제
0       /var/lib/docker/plugins
0       /var/lib/docker/runtimes
0       /var/lib/docker/swarm
2.7G    /var/lib/docker/tmp
0       /var/lib/docker/trust
24K     /var/lib/docker/volumes

$ sudo docker system prune -a -f
Deleted Containers:
af93ec49ad7c09c69af90583d9c7dfa6e295808d398184db84f93c45473e374a
160e31cfaa513671788c0c4d6d1fa31b6f725b847ec748fd2e510e1427335a8a
281d1ebbfbb4a2efa16c1837a672f1a0e996205516f8c4db965c7c8f6a4e5513
....

$ sudo bash -c 'du -sh /var/lib/docker/*'
72K     /var/lib/docker/buildkit
672K    /var/lib/docker/containers
2.9M    /var/lib/docker/image
52K     /var/lib/docker/network
1.3G    /var/lib/docker/overlay2   <--- 5G 넘게 줄어들었다
0       /var/lib/docker/plugins
0       /var/lib/docker/runtimes
0       /var/lib/docker/swarm
0       /var/lib/docker/tmp
0       /var/lib/docker/trust
24K     /var/lib/docker/volumes

 

2.  다른 스토리지  사용하기

종종 용량을 확인해보면 root path 의 디스크 공간이 작게 잡혀있고, 딴 경로에 디스크 공간을 크게 잡아놓은 경우가 있다. 아님 NFS 같은 외부 스토리지가 마운트 되어있어서 해당 경로로 변경하여 사용하는것도 가능하다.

 

예를 들어, /var/lib/docker  가 기본폴더인데  /ext/docker 로 경로를 바꾸려면 아래와 같은 설정파일을 추가하고

다음과 같이 서비스를 재기동 해주면 내가 지정한 경로에 관련된 파일이 생겨서 문제를 해결 할 수 있다.

(graph 말고 data-root 를 설정값으로 써도 된다고 한다.

 

  • /etc/docker/daemon.json
{
    "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
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함