티스토리 뷰

728x90
반응형

도커기반 개발을 하면서 사용하면서 이런 저런 도커 이미지를 생성하면서 아무 생각 없이 쓰다가 보면 

저장공간이 급속히 줄어들어 결국 디스크가 모자라는 현상이 벌어진다. 

도커 설치시에 저장공간을 지정하는 수도 있는데 이런 현상을 미리 예상하지 못하면 결국 기본(default)

디렉토리인  /var/lib/docker 안에 하나하나 쌓이게 된다. 

 

개인적으로 256GB SSD와 외장하드를 쓰는데 SSD에 우분투 운영체제를 설치하고서 생각없이 

도커를 사용하다보니 100GB이상을 쉽게 도커 이미지 관련한 파일 때문에 쓰는 것을 확인할 수 있었다. 

 

이미 사용하던 중에 만들어 놓은 도커 이미지들 손상 없이 새로운 저장공간(개인적으론 하드디스크)으로 

옮기는 방법을 고민하게 되었다. 

 

다음 글의 내용은 바탕으로 시도해서 성공하였다. 

 

https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux

 

How to move docker's default /var/lib/docker to another directory on Ubuntu/Debian Linux - LinuxConfig.org

 

linuxconfig.org

요약하면 다음과 같다. 

 

도커 관련 서비스 환경 파일을 편집

1) 다음 위치의 파일을 연다.

$ vi /lib/systemd/system/docker.service

 

 

2) ExecStart 관련 부분을 수정한다. 

before: 

ExecStart=/usr/bin/dockerd -H fd://

after: 

ExecStart=/usr/bin/dockerd -g [ 새로 지정할 디렉토리 ] -H fd://

 

도커 서비스 정지 시키기

1) 서비스를 정지 시킨다.

$ systemctl stop docker

2) 완전 정지 여부를 다음 명령어로 확인한다. 출력 결과가 아무것도 나오지 않아야 한다. 

실행하고 있던 도커나 도커와 연관된 어플리케이션을 모두 종료 시키고 날때 까지 다음 명령어로 확인한다.

$ ps aux | grep -i docker | grep -v grep

데몬 다시 올리고 새로운 디렉토리에 도커 관련 파일 복사

1) 데몬을 다시 띄운다.

$ systemctl daemon-reload

2) 원래 설치되어있단 docker 관련 파일들을 모두 새로 생성한 디렉토리로 옮긴다.

$ rsync -aqxP /var/lib/docker/ [새로 지정할 디렉토리]

기본적으로 도커 관련한 파일 모두를 새로 지정한 디렉토리로(만들지 않았다면 만들어야 한다) 옮겨지게 된다. 

(여기서 시간이 소요된다.)

도커 서비스 재시작

1) 도커 서비스를 재시작하면 새로 지정한 폴더로 생성되거나 활용되는 도커 이미지들이 관리된다.

$ systemctl start docker

2) 지정된 디렉토리가 도커 서비스에서 활용되는지 여부 확인

 

다음 명령어를 실행하면 해당 서비스가 연결된 디렉토리 정보가 나오는데 이를 통해 원하는 폴더에 연결된지 여부를 알 수 있다.

$ ps aux | grep -i docker | grep -v grep

 

기존 폴더 지우기 

여전히 기존의 폴더는 용량을 차지하고 있다. 

더 좋은 방법이 떠오르지 않아 일단 /var/lib/docker 안의 폴더는 필요가 없으므로 rm -rf  [폴더명] 을 이용해 지우면 된다.

$ cd /var/lib/docker
$ sudo rm -rf 폴더명

 

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함