Profile picture

[Docker] 도커 저장소 변경 (/var/lib/docker)

JaehyoJJAng2023년 06월 02일

▶︎ 개요

Docker가 저장되는 기본 Path를 변경해보려 한다.

현재 본인의 경우 블로그 및 게임 서버를 위해 미니PC를 구입하였고

Proxmox VE를 이용하여 여러 대의 VM을 생성해 서버들을 구축하고 있다.

현재 게임 서버용 가상 머신의 Main data storage에는 40GB가 할당되어 있고

추가로 디스크를 붙여주는 방식으로 확장을 고려하고 있는데

이 때, 만약 Docker가 Main storage에 설치되고 계속 운영이 된다고 가정했을 때

main storage를 세세하게 관리해주지 않으면 Disk full 상황이 발생할 수 있게 된다.

Docker는 기본적으로 root Directory 영역을 이용하기 때문에 이러한 사태가 발생하게 되면 서버 자체에 문제가 발생하게 될 가능성이 높다.

이러한 문제를 예방하고자 Sub Data Storage를 HDD로 준비하여 1TB를 할당해주고 이 곳에 Docker Data가 쌓일 수 있도록 변경해보려고 한다.


▶︎ Docker

‣ 저장 위치

서버에 추가된 1TB Disk의 마운트 경로에 저장될 수 있도록 변경하려고 한다.

df -hT | grep 'zfs'

image


작업을 위해 Docker service를 중지 시키자.

sudo systemctl stop docker.service

이제 도커 저장 위치를 변경 해보도록 하자.

mkdir -p /data/docker

위와 같이 저장할 디렉토리를 만들어주자.


그리고 기존에 Docker 데이터를 /data/docker로 옮겨주도록 하자.

# mv {기존 Docker 저장소 Path} {새롭게 변경할 저장소 Path}
mv /var/lib/docker /data/docker

그리고 /etc/docker로 이동하여 daemon.json 파일이 있는지 확인하자.

cd /etc/docker
find . -name "daemon.json" 2>/dev/null

파일이 없다면 만들어주자.

touch /etc/docker/daemon.json

그리고 아래와 같이 새롭게 저장할 디렉토리 위치를 명시해주면 된다.

/etc/docker/daemon.json

{
  "data-root": "/data/docker"
}

그리고 다시 Docker Daemon을 기동시켜주자.

sudo systemctl start docker.service

마지막으로 아래 명령어를 실행해 도커 저장 위치가 정상적으로 변경 되었는지 확인해보자.

docker info | grep "Docker Root Dir"

Loading script...