• All Objects
    • Life
    • Technic
    • entry
  • Tags
  • git
  • wsl2
  • github
  • go
  • docker
Technic

Docker 데이터 저장 위치 변경하기.

2021. 1. 19. 23:22

Docker를 설치하면 root 드라이브를 사용하도록 설정됩니다. 이 경우 나중에 스토리지가 부족하게 야기하게 될 수 있기 때문에 데이터를 저장하는 위치를 변경해 두는 것이 좋습니다. 특히, 운영 중인 시스템이라면 반드시 변경해 두셔야 스토리지 때문에 서비스가 중단되는 위기를 피할 수 있습니다. ( 실제로 제가 이 문제로 서비스가 중단되는 경험을 했었습니다. -_-;; ) 

 

Ubuntu 

ubuntu에서 docker는 이미지와 컨테이너에서 사용하는 스토리지는 /var/lib/docker 하위를 사용합니다. 이 위치를 /data/docker/로 변경하려고 합니다. 모든 작업을 하기 전에 Docker를 중지하고, 작업을 마친 후에 Docker를 재시작해주어야 합니다. 이 방법 말고도 심볼릭 링크를 사용해서 변경하는 방법도 있습니다. 심볼릭 링크를 사용하는 경우, 옵션을 수정하지 않아도 되는 장점이 있지만, 저는 좀 더 명시적으로 변경하는 것을 선호합니다. 

# docker service stop 
$ service docker stop 

# 이동할 디렉토리 생성 
$ mkdir -p /data/docker 

 

이제 Docker option을 변경합니다. /etc/docker/daemon.json 에 data-root 항목을 찾아 새로 생성한 폴더를 적어 줍니다. 

# /etc/docker/daemon.json
...
"data-root": "/data/docker",
...

Docker를 재시작해서 작업을 마무리하면, 데이터 저장 위치는 변경되게 됩니다. 

$ service docker start

 

Windows10 / MacOS

윈도우10과 MacOS에는 DockerDesktop 앱을 설치해서 docker를 사용할 수 있습니다. ( 윈도우10 홈에디션의 경우 DockerDesktop을 사용할 수 없고, Docker Toolbox를 사용해야 합니다. ) 구동 OS만 다르고 서로 동일한 앱이기 때문에 UX도 유사하고, 데이터 저장 위치를 변경하는 방법도 동일합니다. 

 

DockerDesktop을 설치하고 docker를 실행하면 윈도우10에선  C:\ProgramData\DockerDesktop\vm-data\ 에 데이터를 저장합니다. MacOS의 경우에는 /Users/username/Library/Containers/com.docker.docker/Data/ 에 저장합니다. 이 위치를 변경하기 위해서 시스템 트레이에서 DockerDeskTop 앱의 설정( 윈도우10 : setup, MacOS : Preferences... )을 눌러 Resources 탭을 선택합니다. 이제 우측 하단에 보이는 Disk Image Location에 변경할 위치를 지정해 주고 Docker를 다시 시작해 주면 Image와 Container관련 리소스들은 새로 지정한 곳에 저장되게 됩니다.

 

- 끝

 

2021-01-19

간혹, Resources에 ADVACED라는 메뉴가 보이지 않는다고 하시는 분이 계셔서 내용 추가합니다. 만약 윈도우즈에서 WSL2 통합 기능을 사용하시다면 위 메뉴는 보이지 않습니다. 이 때는 WSL2 볼륨을 사용하는 것 같고, (공식적으로는) 위치를 변경할 수는 없는 것 같습니다. 

반응형
copyright 2020. noname

티스토리툴바