Docker 실행 저장소 다른 디렉토리에 마운트하기

mosad2334·2021년 12월 29일
0

centOS7 기준으로, 도커 공식 매뉴얼 지침에 따라 yum으로 설치했을 때 자동으로 도커의 실행 저장소는 /etc/lib/docker 가 되었는데요.
문제는 저희 사내 서버 디스크 할당량이 웹서비스 제공 코드를 저장하는 디렉토리 루트에 몰빵이 되어 있었고, /etc에 할당된 디스크는 그렇게 크지 않았습니다. 그리고 도커를 사용하면 사용할수록 그 디스크 필요 할당량이 늘어날 것이 뻔했습니다.
이런 회사 서버 기본세팅때문에 도커를 세팅하는 서버마다 도커 설치 뒤 실행 저장소를 디스크 할당량이 많은 디렉토리로 옮겨 사용했습니다.

아래 커맨드 내용은 centOS 7 기준으로 작성했습니다.

1. Dcoker 설치

각 OS 별로 공식 매뉴얼에 자세하게 설명하고 있습니다.
👉도커 설치 공식매뉴얼

2. 도커 컨테이너 저장소 및 데몬 관련 디렉토리 생성

도커를 한번도 실행시키지 않으면 도커 컨테이너 저장소(/etc/lib/docker)와, 데몬을 작성할 디렉토리(/etc/docker)가 생성되지 않은 상태입니다.

해당 파일과 디렉토리들은 도커를 껐다가 켜주면 생성됩니다.

# systemctl start docker
# systemctl stop docker

3. data-root 관련 옵션 추가

도커 데몬에 data-root에 관한 설정을 추가합니다.
2번 과정 이후에도 파일이 존재하지 않을 수 있으니, 파일을 찾을 수 없어도 당황하지 않고 새 파일을 작성하시면 됩니다.

/etc/docker/daemon.json

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

4. 도커 실행 저장소를 원하는 디렉토리로 마운트하기 위해 옮기기

# mv /var/lib/docker /my/route

5. 도커 실행

도커 시작 전에 데몬을 적용하는 과정이 추가로 필요합니다.

# systemctl daemon-reload
# systemctl start docker

6. 도커 컨테이너 마운트 디렉토리 확인

도커 컨테이너를 하나라도 실행시킨 뒤 확인합니다.

# df -a

실행된 컨테이너가 /my/route 로 시작되는 곳에서 마운트 되고 있다면 정상입니다.

사실 벨로그를 업데이트를 하고 싶었는데 계획하고 있던 내용 몇개가 이런저런 이유로 작성을 미룰 수 밖에 없던 이런저런 변명거리가 있는 상태여서 고민하고 있던 차에 건덕지가 생각나서 작성을 하게 된 내용이었습니다만..
그래도 나중에 기억해낼 필요성이 생길 것 같은 내용입니다. 그 부분에서 만족.

profile
Web Developer / Read "KEEP CALM CARRY ON" Poster

0개의 댓글