- 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 10에서 Docker for Windows 설치 본문
Docker를 Download 받기 위해서 https://www.docker.com/ 사이트로 가보면
Docker for Mac, Docker for Windows는 메인 페이지에서 바로 다운로드 받을 수 있는데,
Docker Tool Box는 Get Started with Docker 버튼을 눌러서
http://www.docker.com/products/docker#/ 웹페이지에서
For previous versions get Docker Toolbox 링크를 눌러야지 다운로드 받는 페이지로 이동합니다.
http://www.docker.com/products/docker-toolbox
Docker 사이트에서 Docker Tool Box 보다는 Docker for Windows를 밀고 있다는 느낌이 듭니다.
그런데 Docker for Windows를 사용하기 위해서는 설치부터가 제약조건이 있습니다.
제 노트북은 Windows 10 Pro 임에도 불구하고, Windows 10 build number가 10586 보다 낮아서 아예 설치조차 되지 않았습니다.
(설치 요구사항: Windows 10 Pro 64비트, Build Number 10586 이상)
작업 표시줄의 웹 및 Windows 검색창에서 winver 라고 입력하면 다음과 같이 Windows 10의 버전을 알려주는 창이 뜹니다.
제 노트북은 이상하게 Windows 10 Build Number 10586으로 업그래이드 할 때 계속 실패해서, 아예 Windows 10을 Clean 설치했습니다.
Docker Tool Box를 설치할 때와는 다르게, Virtual Box와 Git For Windows 가 설치되지 않습니다.
명령 프롬프트 창이나 Windows PowerShell 에서 Docker 명령을 실행할 수 있습니다.
Docker는 Windows 시작할 때 자동 시작됩니다. (옵션으로 조정할 수 있는데, 이것이 default)
작업 표시줄 Tray 에 보면 고래 모양의 Docker 아이콘이 보이고, 이 아이콘을 마우스 오른쪽 클릭해서 Setting을 변경할 수 있습니다.
Docker for Windows를 실행하기 위해서는 Hyper-V 기능이 설치되어야 합니다.
Windows 10에 내장된 Hyper-V 관리자를 통해서 Docker 실행 상황을 모니터링 할 수 있습니다.
TensorFlow Docker를 다운로드 받기 위해서 삽질한 얘기를 안할 수가 없네요.
PS C:\Windows\system32> docker run -p 8888:8888 -p 6006:6006 --name tensorflow -it b.gcr.io/tensorflow/tensorflow:latest-devel
Unable to find image 'b.gcr.io/tensorflow/tensorflow:latest-devel' locally
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Get https://b.gcr.io/v1/_ping: dial
tcp: lookup b.gcr.io on 192.168.65.1:53: read udp 10.0.75.2:39368->192.168.65.1:53: i/o timeout.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
다운로드 받다가 에러나면서 설치가 안되기를 몇 번 해서 저는 설치가 잘 안되었거나 제가 뭘 잘못한줄 알았습니다.
인터넷에서 검색해보니 docker 에서 DNS 서비스를 이용하는데 문제가 있다는 것을 알았습니다.
https://github.com/boot2docker/boot2docker/issues/365
http://stackoverflow.com/questions/32047660/docker-for-windows-not-working
if you are using docker for windows(beta) follow this steps:
- Disable the "DockerNAT" network adapter
- Run the "Reset to factory defaults" via the taskbar / docker / settings / Reset to factory defaults"
(혹시 이게 해결책? 확실치 않음)
docker를 실행해 보면 인터넷에서 파일을 받아오도록 하면 간혹 실패하는데 exit 하고 다시 들어가는 식으로, 몇 번의 시도 끝에 성공하였습니다.
오늘 Docker Update 창이 떴는데, DNS에 관련된 이슈가 해결된 것 같네요.
Docker만 업데이트 하면 인제는 잘 되겠죠?
Tensorflow Docker를 다운로드 받아서 MNIST 예제를 실행해 봤을때, 실행시간 비교
실행예제:
# python -m tensorflow.models.image.mnist.convolutional
Docker ToolBox: 89분
Docker for Windows: 59분 (CPU 2 - default)
Docker for Windows: 51~55분 (CPU 4)
측정해 본 결과, Docker for Windows 는 Docker ToolBox와 비교해서 33% 정도의 속도 향상이 있었습니다. 아마도 H/W를 이용하는, 운영체제에 내장된 가상화 기술(Hyper-V)을 이용하기 때문에 좀 더 효율적이 아닐까 생각해 봅니다.
Docker Setting 에서 CPU 갯수를 변경할 수 있는데, CPU 2 개와 4개를 사용할 때 생각보다 실행시간 차이가 별로 나지 않았습니다.
Docker for Windows를 이용하면서 Docker 안의 시간이 맞지 않아서 삽질한 얘기를 안할 수가 없네요. (Docker Toolbox에서도 마찬가지일 것 같긴 한데, 정확하지는 않습니다.)
시간이 맞지 않아서 시간을 바꾸려고 했더니 id가 root 인데도 불구하고 Permission 이 없다는 에러가 납니다.
(Time Zone이 Default 로 UDT 로 되어 있는데, Time Zone을 KST 로 바꾸는 것은 쉽게 됨.)
인터넷에서 검색해 보니, Docker는 Host 컴퓨터와 시스템 자원을 공유하기 때문에 시간을 바꿀 수 없다고 합니다.
그런데, 어떻게 Host 컴퓨터와 시간이 다를 수 있지...?
알고보니 Host 컴퓨터가 절전모드로 들어가면 Docker의 시간이 멈춥니다.
어떻게 보면 이런 방식이 오히려 프로그램의 실행시간을 측정하기가 더 좋기는 하네요.
시간이 안 맞을때 Host 컴퓨터와 맞추는 방법은 Docker를 Reset 하는 것입니다. (Restart Docker... 클릭)
그런데 Hyper-V 가 활성화 된 상태에서는 Docker Toolbox가 실행되지도 않습니다.
실행시키는 방법이 있는 웹페이지도 발견했는데, 해 보지는 않았습니다.
Using Docker Toolbox with Hyper-V on Windows 10
Docker for Windows 를 사용할 때 Output 에 matplotlib 라이브러리의 Graph Image가 있으면 jupyter notebook을 save 할 때 에러가 나는 issue 가 있는데요.
Hyper-V 관리자 창에서 IP주소 항목에 보이는 주소로 웹브라우저로 접속하면 에러가 안 납니다.
[참고]
[Docker for Windows] jupyter notebook - Graph Image Save 안되는 문제 해결
'머신러닝' 카테고리의 다른 글
TensorFlow 예제 (0) | 2016.07.19 |
---|---|
CNN (Convolution Neural Networks) (0) | 2016.07.15 |
TensorBoard (0) | 2016.07.13 |
[Facebook 텐서팔로우 스터디] (0) | 2016.07.12 |
Creative Applications of Deep Learning with TensorFlow (0) | 2016.07.12 |