본문 바로가기

Tech/Docker

[Docker] Docker Root Directory (도커 스토리지) 변경

반응형

 

도커를 사용해서 개발을 하다보면 도커 이미지들이 계속해서 쌓이게 된다. 버전별로 빌드된 도커 이미지들은 작으면 MB 에서 nvidia, gpu 관련된 이미지들의 경우에는 20GB 정도까지 용량이 커지곤 한다. 이러한 이미지들이 계속해서 쌓이면 로컬 디스크의 용량이 부족해지는 경우가 있다. 글에서는 이런 상황을 해결하기 위하여 마운트된 디스크와 같이 특정 위치로 도커 스토리지의 위치를 변경하는 법을 정리한다.

1. Docker Root Directory

도커 데몬은 도커와 관련된 파일들, 컨테이너 정보, 도커 이미지, 볼륨 정보, 서비스 정보 등등 도커와 관련된 정보들을 특정 디렉토리에 저장하여 사용한다. 이러한 디렉토리를 Docker Root Directory 라고 하는데 해당 디렉토리의 기본 위치는 OS 별로 다음같다.

 

- linux: /var/lib/docker
- windows: C:\ProgramData\Docker

 

현재 지정된 위치는 다음의 명령어로 조회할 수 있다.

 

sudo docker info | grep "Docker Root Dir"

 

명령어를 실행하면 아래와 같이 기본 경로인 "/var/lib/docker" 가 출력되는 것을 확인할 수 있다.

 

 

"/var/lib/docker" 디렉토리의 내부를 조회하면 아래와 같이 도커와 관련된 정보들이 저장되어 있는 것을 확인할 수 있다.

 

2. Docker Root Dir 변경

Docker Root Dir "/var/lib/docker" 에서 다른 위치로 변경하고자 한다.

1) 도커 서비스 중지

우선 도커 설정을 변경하기전에 현재 실행중인 도커 서비스를 중지한다. 아래와 같이 명령어를 실행하여 도커 데몬을 종료한다. 이때 동작중인 컨테이너도 모두 종료됨을 주의한다.

2) 새로운 Docker Root Dir 경로 지정

 /etc/docker/daemon.json 이라는 파일을 생성한다. 이 파일은 docker daemon 의 설정 파일이다. 해당 파일의 내용은 다음과 같이 작성한다. data-root 의 값으로는 Docker Root Directory 로 지정할 디렉토리의 경로를 입력해준다.

 

{
	"data-root": "/path/to/your/new/docker/root"
}

 

※ 도커 17.05 버전 이전에는 json 의 key 로 data-root 가 아닌 graph 를 사용했었다. 현재는 deprecated 이기 때문에 본인이 사용하는 도커 버전을 확인하고 알맞은 용어를 사용하도록 한다.

3) 도커 디렉토리 복사

새로운 Docker Root Directory 로 지정된 경로에 기존 경로인 "/var/lib/docker" 의 내용을 복사한다.

 

sudo rsync -aP /var/lib/docker /path/to/your/new/docker/root

4) 도커 재시작

아래 명령어를 실행하여 도커 데몬을 재실행한다.

 

sudo systemctl docker

5) Docker Root Dir 변경 확인

이제 재시작된 도커 정보를 조회하여 경로가 잘 변경되었는지 확인한다.

 

 

docker info 를 조회하면 기존의 /var/lib/docker 에서 /mnt/storage1/docker 로 경로가 변경된 것을 확인할 수 있다.

 

이렇게 경로가 변경된 후에는 기존의 /var/lib/docker 를 삭제한다.

[Reference]

- https://docs.docker.com/config/daemon/#daemon-data-directory

 

Docker daemon configuration overview

Configuring the Docker daemon

docs.docker.com

- https://dongle94.github.io/docker/docker-image-storage-change/#google_vignette

 

[Docker] Ubuntu Docker 이미지 스토리지 변경

우분투 OS에서 도커 이미지의 저장 경로를 변경한다.

dongle94.github.io

- https://tienbm90.medium.com/how-to-change-docker-root-data-directory-89a39be1a70b

 

How to change docker root data directory

The standard data directory used for docker is /var/lib/docker, and since this directory will store all your images, volumes, etc. it can…

tienbm90.medium.com

 

반응형

'Tech > Docker' 카테고리의 다른 글

[Docker] Docker vs VM  (0) 2022.07.28
[Docker] Docker Compose  (0) 2021.09.05
[Docker] Dockerfile 개념 정리  (0) 2021.09.04
[Docker] 도커 개념 정리  (0) 2021.04.13