friendsmachbase
260
2021-11-22 17:21:07
0
193

Docker external storage 공유 방법


개요

마크베이스는 Fog 에디션 Docker Image을 제공합니다.

도커이미지를 통해 컨테이너를 생성하면 기본적으로 컨테이너내에서 마크베이스DB 가 구축되게 됩니다.

하지만, 컨테이너상에서 운영하다가 실수로 컨테이너가 삭제되거나, 재생성해야할 때 어렵게 구축해놓은 DB데이터를 날려야되는 상황이 생기게됩니다.

이 문제를 해결하기 위해 호스트의 볼륨을 공유하여 컨테이너가 삭제되더라도 데이터를 유지할 수 있는 방법을 안내드리겠습니다.




스토리지 공유

볼륨을 공유하기 위한 방법은 크게 2가지가 존재하며, 추가적으로 docker-compose 활용한 공유 방법도 존재합니다. 

컨테이너를 생성할 때 아래 방법들을 사용해야합니다.

첫번째 방법은 docker volume 생성을 통한 방법으로 / (root) 볼륨과 연관이 있어 실용성이 높진않습니다.

두번째 방법은 docker mount 옵션을 통한 방법으로 실제 외부 스토리지 및 다른 볼륨과 공유하고자 할 때 사용하게 됩니다.

세번째 방법은 두번째 방법을 docker-compose 를 통해 사용하는 방법입니다.


스토리지 공유 설정시 주의사항

마크베이스 컨테이너를 생성하면, 컨테이너상에서 uid 가 1000 인 권한으로 구동 및 운영됩니다.

하여, 공유할 호스트의 스토리지 및 디렉토리 접근권한은 uid 가 1000 으로 변경 및 생성해줘야합니다.

OS 설치후 최초 생성한 계정으로 사용할 경우에는 기본 uid가 1000 으로 되어있을 것 입니다.

만약, uid가 1000 인 계정이 없을 경우는 아래와 같이 계정 추가후, uid 를 1000 으로 변경해주고 스토리지 및 디렉토리 접근권한을 해당 계정 권한으로 변경해줍니다.


Step 1. 계정 추가

$ useradd shareduser

Step 2. UID 를 1000 으로 변경

$ usermod -u 1000 shareduser

Step 3. 계정 생성 및 uid 확인

$ cat /etc/passwd
 
 
lucas:x:1002:1002::/home/lucas:/bin/bash
shareduser:x:1000:1003::/home/shareduser:

Step 4. 공유 스토리지 및 디렉토리 접근 권한 변경(root 권한에서 진행)

  • 여기서부터는 /data 볼륨의 SharedVolume1, SharedVolume2 디렉토리와 공유하기로 한다.
  • SharedVolume1 은 두번째 방법용이며, SharedVolume2 는 세번째 방법용 디렉토리이다.
$ mkdir /data/SharedVolume1
$ mkdir /data/SharedVolume2
$ chown -R shareduser /data/SharedVolume1
$ chown -R shareduser /data/SharedVolume2


더 자세한 내용은 아래 URL을 통해 확인하실 수 있습니다.

https://kr.machbase.com/docker-external-storage-

0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.