Docker Toolbox 에서 D 드라이브 볼륨 경로 지정하기

Danuel·2019년 4월 13일
2
post-thumbnail

Docker 1일차에 겪은 삽질을 공유하고자 작성했습니다.

  • 같은 케이스를 겪은 분이 많을 것으로 보이는데 국내에서는 관련 포스트를 못 찾고, Git Gist에서 찾았습니다. 구글실력이 부족한 탓이겠습니다만...

같은 windows 10이라도 windows 10 Home인 경우 Docker Desktop for windows가 아니라 Docker Toolbox를 설치해야 합니다. 이 때, 컨테이너에 볼륨을 추가하려고 하면 호스트의 볼륨 경로를 제대로 인식하지 못 하는 이슈가 있습니다.

  • 추측으로는, Hyper-v를 정식적으로 지원하지 않아서 VirtualBox를 이용하기 때문인듯 합니다.

사전준비

  1. Docker Toolbox를 설치한 디렉토리로 이동합니다.

    Docker Toolbox Pre.png

  2. 아래 커맨드를 attach-path.sh 이라는 이름으로 파일을 생성합니다.

    #!/bin/bash
    
    if [ "${VM}" == "default" ]; then
      "${DOCKER_MACHINE}" ssh "${VM}" "sudo mkdir -p /d/"
      "${DOCKER_MACHINE}" ssh "${VM}" "sudo mount -t vboxsf -o defaults,uid=\$(id -u docker),gid=\$(id -g docker) d /d/"
    fi
  3. start.sh 을 열어 STEP="Finalize" 직전에 sh attach-path.sh 를 추가합니다.

    # ...
    sh attach-path.sh
    
    STEP="Finalize"
    # ...

최종

Docker Toolbox Post.png

캡처와 같이 attach-path.sh 파일이 1개 늘어나 있고, start.sh 파일은 수정을 끝마친 상태여야 합니다.

경로 추가

  1. Docker Quickstart Terminal 바로가기를 실행합니다.

    Docker Quickstart Terminal.png

  1. CMD 등 터미널에서 docker-machine stop 커맨드로 Docker를 종료시킵니다.

  2. VirtualBox를 열고 default 의 설정 버튼을 클릭합니다.

    VirtualBox Settings.png

  3. 공유 폴더 탭 클릭 -> 우측 공유폴더 추가 버튼을 클릭 -> 폴더경로와 폴더이름을 입력하고 자동마운트항상 사용하기 에 체크 표시를 한 후 확인을 클릭합니다.

    VirtualBox Path.png

  4. 설정 창의 확인 버튼을 클릭하고, Docker Quickstart Terminal 바로가기를 실행합니다.

주의

VirtualBox의 설정을 끝마친 후 확인 버튼을 클릭하고 다시 Docker Quickstart Terminal 바로가기를 실행했는데도 원하는 경로를 제대로 인식하지 못 할 수도 있습니다.

그런 이슈가 발생한다면 VirtualBox의 설정을 마치고 확인 버튼을 클릭한 후에, 설정을 다시 확인해봐야 합니다.

  • 왜 그런지는 모르겠지만 뒤죽박죽으로 이름이랑 경로가 바뀌어있는 경우가 있습니다.

볼륨 경로 작성 방법

폴더 경로 C:/c 라는 이름으로 지정했다면 /c/way/to/go 와 같이 작성해야 합니다.

  • 절대 C:/way/to/go 가 아닙니다.

확장

D 드라이브 추가를 응용하면 커스텀 경로를 추가할 수도 있습니다. 여기까지 읽은 분이라면 응용할 능력이 충분할 것이라 생각합니다.

참조

https://gist.github.com/first087/2214c81114f190271d26c3e88da36104

profile
다뉴하는 코딩

2개의 댓글

comment-user-thumbnail
2019년 4월 13일

좋아요와 댓글 감사합니다.

답글 달기
comment-user-thumbnail
2020년 1월 14일

도움이 많이 되었습니다. 좋은 글 감사합니다

답글 달기