- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
Windows Docker Toolbox에서 Host PC와 폴더 공유하기 본문
[2016-08-12]
Docker Toolbox가 Windows에서도 Mac에서와 마찬가지로 C드라이브의 Users 폴더 이하는 자동으로 공유되더군요. (Mac에서는 /Users 폴더 이하)
$ docker run -it --name test1 -v /c/Users/{자신의 Windows 계정 폴더}/{공유할 디렉터리명}:{Docker Image에서 공유폴더와 Mount할 폴더 경로} {Docker Image 이름}
Example))
$ docker run -it --name test1 -v /c/Users/Heeseok/shared:/root/shared ubuntu
( /c/Users 대소문자 구분하므로 주의! )
Docker Quick Start 터미널로 들어가서 Docker Container에 접속해서 ll 해서 공유된 폴더를 보면 폴더 이름이 녹색 바탕으로 보입니다.
이렇게 보이면 공유 설정은 정상적으로 된것이고, 쓰기 권한이 없으면 Protocol Error 가 납니다.
(Users 밑에 자기 계정 폴더 밑으로 들어가면 따로 쓰기 권한을 줄 필요는 없습니다.)
[2016-08-11]
Mac 용 Docker Toolbox로 테스트 결과
Mac은 -v 옵션만 주면 자동으로 폴더 공유가 되긴 되는데, /Users 폴더 밖을 공유폴더로 하려면 -v 옵션만 줘서는 폴더 공유가 안되더군요.
Windows 처럼 다른 설정이 필요할것 같습니다.
Mac에서는 /Users 밖의 폴더를 쓸 일이 거의 없고,
Mac 사용자 계정으로, 도커 컨테이너를 실행시키는거니까 당연히 유저 경로내의 볼륨에 자동 연동되도록 하는게 맞을것 같다는 의견.
사실 웹에서 검색해보면 Windows 도 C:\Users 폴더는 자동 공유된다고 하는데 실제로는 안되네요.
아시는 분은 댓글 부탁드려요.
사실.. 제가 Windows에서는 Docker for Windows를 설치할 수 있는 조건이 되지만 굳이 Docker Toolbox를 설치하려는 이유는... PyCharm 으로 Docker 안으로 Remote Debugging을 하려고 합니다. PyCharm 에서 Docker for Windows로는 아직 Remote Debugging 을 접속 지원 못하는것 같아요.
( C드라이브의 Users 폴더 이하는 자동으로 공유되고, 아래 글은 그 외의 디렉터리를 Host PC와 공유하고자 할 때 사용하는 방법이라고 이해하시면 되겠습니다. )
[2016-08-10]
Windows Docker Toolbox에서 Host PC와 폴더 공유하는 것을 해결은 했는데, 생각보다 꾀 복잡하군요.
Docker for Windows 에서는 Settings 메뉴에서 Shared Drives 항목에서 공유하고자 하는 Drive를 체크만 해주고 Docker run 시킬때 -v 옵션으로 폴더 경로만 지정해 주면 되었는데...
Windows용의 Docker Toolbox에서는 default VM에서 공유 폴더 설정을 해 주고, 다시 default VM으로 들어가서 마운트 해 주고, Docker Image를 Container로 띄울 때 마운트 해 준 경로 이름으로 -v 옵션을 줘야 폴더 공유가 됩니다. 이것 때문에 반나절 이상 삽질을... ㅠㅠ
하는 방법을 간단히 공유하면...
Docker Toolbox 쓰면 VirtualBox 가 기본으로 설치되면서 default 라는 VM 이 자동으로 생깁니다.
VirtualBox에서 설정 버튼을 눌러서 공유폴더 설정해주고, default VM에 ssh에 접속해서 설정한 공유폴더의 이름으로 mount 해줍니다.
$ docker-machine ssh default
docker@default:~$ sudo mount -t vboxsf shared /root/shared
이렇게 하면 default VM과 Windows Host PC 간에 서로 폴더 공유가 되어야 하므로 잘 되는지 체크. (그래야 나중에 Docker Image에서도 폴더 공유가 됨.)
그 mount 해준 경로 이름으로 docker run 시킬 때 -v 옵션 줘야 공유가 됩니다.
그래서 결국 아래와 같이 Host PC가 Windows 임에도 불구하고 -v 옵션 줄때 Host 경로가 default VM에서 mount 해준 경로로 들어갑니다.
$ docker run -it --name {CONTAINER_이름} -p 8888:8888 -p 6006:6006 -v /root/shared:/root/shared gcr.io/tensorflow/tensorflow:latest-devel
이것을 자동으로 해주기 위해서는
/var/lib/boot2docker/bootlocal.sh
fits your need probably, it will be run by initial script /opt/bootscripts.sh
And bootscripts.sh
will also put the output into the /var/log/bootlocal.log
, see segment below (boot2docker 1.3.1 version)
# Allow local HD customisation
if [ -e /var/lib/boot2docker/bootlocal.sh ]; then
/var/lib/boot2docker/bootlocal.sh > /var/log/bootlocal.log 2>&1 &
fi
[참조]
What's the best way to share files from Windows to Boot2docker VM
'머신러닝' 카테고리의 다른 글
Docker 에서 Time Zone 바꾸기 (0) | 2016.08.12 |
---|---|
Putty로 윈도우 Docker 이미지 접속하기 (0) | 2016.08.10 |
TensorFlow on a GTX 1080 (0) | 2016.08.07 |
Docker 띄우는 명령어 (0) | 2016.08.06 |
[Docker for Windows] jupyter notebook - Graph Image Save 안되는 문제 해결 (0) | 2016.07.23 |