CentOS 7.x 버전에서 Docker를 설치할 경우 기본적으로 /var/lib/docker 디렉터리에 저장이 됩니다.
일반적으로 사용할 때는 크게 문제가 없습니다.
다만, 루트 (/) 혹은 /var 파티션의 용량이 부족할 경우 정상적으로 Docker를 운영하기 어려울 수 있습니다.
Data Root Directory 변경 방법
Data Root Directory를 변경하는 방법에는 크게 2가지가 존재합니다.
- dockerd에 -g 옵션 추가
- 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?
댓글