본문 바로가기
Docker & Kubernetes

[Docker] Data Root Directory 경로 변경

by 붕어고기 2020. 6. 3.
반응형

CentOS 7.x 버전에서 Docker를 설치할 경우 기본적으로 /var/lib/docker 디렉터리에 저장이 됩니다.

일반적으로 사용할 때는 크게 문제가 없습니다.

다만, 루트 (/) 혹은 /var 파티션의 용량이 부족할 경우 정상적으로 Docker를 운영하기 어려울 수 있습니다.

 

Data Root Directory 변경 방법

Data Root Directory를 변경하는 방법에는 크게 2가지가 존재합니다.

  1. dockerd에 -g 옵션 추가
  2. daemon.json 에 "data-root" 추가

신규 디렉터리 생성

Docker에서 앞으로 사용할 Data Root Directory를 생성합니다.

신규 생성한 디렉터리에 Docker 설치 시 기본적으로 세팅된 /var/lib/docker의 데이터들을 복사해줍니다.

복사전에 구동중인 Docker 데몬을 종료합니다.

$ mkdir data
$ systemctl stop docker.servic
$ cp -R /var/lib/docker data

 

1. docker -g 옵션 추가 방법

/usr/lib/systemd/system/docker.service 에서 dockerd 부분을 수정해줘야 합니다.

"신규 디렉터리 생성" 부분에서 생성한 디렉터리를 입력하면 됩니다. (docker를 복사했으므로, docker 까지 포함)

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

# 추가할 내용
ExecStart=/usr/bin/dockerd -g <신규_생성한_디렉터리> -H fd:// --containerd=/run/containerd/containerd.sock

# 예시
ExecStart=/usr/bin/dockerd -g /home/carpfish/data/docker -H fd:// --containerd=/run/containerd/containerd.sock

 

이후, systemctl 데몬과 docker 데몬을 다시 실행시켜 주면 됩니다.

$ systemctl daemon-reload
$ systemctl start docker.service

 

docker info에서 변경된 경로를 확인할 수 있습니다.

$ docker info | grep -i "docker root dir"
Docker Root Dir:  /home/carpfish/data/docker

 

 

2. daemon.json 에 "data-root" 추가

/etc/docker/daemon.json 파일에 "신규 디렉터리 생성" 부분에서 생성한 디렉터리를 입력하면 됩니다.

$ vi /etc/docker/daemon.json

# 추가할 내용
{
    "data-root": "<신규_생성한_디렉터리>"
}

# 예시
{
    "data-root": "/home/carpfish/data/docker"
}

 

 

참고

1. Docker Official Site - Dockerd Reference

2. Medium - How to change docker default data directory

3. stack overflow - How to change the 7docker image installation directory?

 

 

반응형

댓글