맥 OSX에서 boot2docker의 Docker 컨테이너와의 공유 폴더(볼륨) 사용

맥 에서 Docker를 운영할 경우 boot2docker를 설치하여 운영하게 됩니다. 그런데 boot2docker가 VirtualBox의 가상 머신위에 docker 컨테이너를 사용 하는 방식이여서 docker의 볼륨 공유를 설정 하였을 경우라도 간혹 권한 문제가 발생하기도 합니다.
아래는 Mysql을 설치할 경우 데이터 볼륨을 공유 볼륨으로 지정하여 설치할 경우 아래와 같이 아예 권한을 맥의 호스트 계정의 uid로 생성을 하니 권한 문제가 없이 설치가 되었습니다.

1. Docker의 Mysql의 공식 레포지토리에서 Docker파일을 내려 받습니다.

2. Docker Mysql공식 링크

https://github.com/docker-library/mysql/tree/b4a2bba171214eadf25aff14a13953b64237f5d8/5.6

3. Mysql의 Docker 빌드 파일 다운로드

Dockerfiledocker-entrypoint.sh 파일 2개를 모두 다운 받습니다.

4. Dockerfile 수정

Dockerfile의 4번째 라인의 mysql 유저 생성 부분에서

RUN groupadd -r mysql && useradd -r -g mysql mysql

다음과 같이 boot2docker 의 docker 유저의 uid 와 동일하게 생성하도록 수정합니다.

RUN groupadd -r mysql && useradd -u 1000 -r -g mysql mysql

5. 빌드합니다.

수정한 Dockerfiledocker-entrypoint.sh이 있는 위치에서 빌드하여 이미지를 생성합니다.
아래 예제는 mysql/5.6.osx 라는 이름으로 빌드하고 있습니다.

# docker build -t mysql/5.6.osx .

6. 실행

test-mysql 이름으로 맥 호스트의 /Users/Guest/docker_work/mysql 디렉토리가 Docker의 Mysql 컨테이너를 실행하는 예제입니다. 정상적으로 디비가 생성이 되며 포트 포워드도 하고 있어 맥에서 boot2docker의 아이피로 3316 포트로 Mysql에 연결이 가능합니다.

docker run  --name test-mysql  -p 3316:3306  -v /Users/Guest/docker_work/mysql:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=testpwd  -d mysql/5.6.osx

참고

맥에서 boot2docker를 통해 Docker를 사용할 경우 Mysql뿐만 아니라 httd와 같이 apache 유저를 생성하여 컨테이너를 실행시 컨테이너 실행시 유저 생성부분에서 boot2docker의 docker 유저의 uid로 생성을 하도록 하면 호스트 OS인 맥과 boot2docker의 VM과 VM의 docker 컨테이너에서 공유 폴더를 사용할 수 있습니다.

'Docker' 카테고리의 다른 글

Docker Machine  (0) 2015.07.21
도커 Docker 설치 하기 - CentOS-6.6  (0) 2015.06.02
Mac 일반 터미널에서 Docker 사용하기기  (0) 2015.05.13
Docker  (0) 2015.05.13
Posted by dewnine
,