프로그래밍2016. 7. 6. 14:04

1. 여러 블로그에 있듯, 먼저 Docker toolbox for Windows를 설치한다. 이런 문서 등을 참고.


2. 그다음 %DOCKER_TOOLBOX_INSTALL_PATH%에 가서 다음과 같이 start.sh를 실행하고

"%ProgramFiles%\Git\bin\bash.exe" --login -i start.sh

3. 한참 기다리고(첫 실행 시) 고래 그림이 뜨면 끝. cmd를 열고 도커용 환경변수를 설정한다. 물론 배치 파일 내에서 실행할 경우 %i는 %%i로 바꿔야 한다.

FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i


4. 이제 도커로 다음과 같이 텐서플로 이미지를 실행하고, 브라우저에서 주피터로 실습을 하면 된다.

docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-devel



단, 구글이 제공하는 도커 이미지는 텐서플로 0.8과 파이썬 2.7용만 있는 듯하다. 이건 그렇다 쳐도 pandas나 seaborn 같은 파이썬 라이브러리가 들어 있지 않아 매번 새로 설치하기가 번거로웠다. 따라서 도커로 새로 자신만의 이미지를 만들고 쓰는 게 나을 듯. 예를 들어 Dockerfile.을 다음과 같은 식으로 작성한다.

FROM gcr.io/tensorflow/tensorflow:latest-devel
RUN pip install seaborn
RUN pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
RUN git clone https://github.com/rickiepark/tfk-notebooks.git
CMD jupyter notebook

pandas는 seaborn의 디펜던시이므로 seaborn 설치 시 같이 설치된다. 위에 예로 쓴 깃허브 노트북은 텐서플로 코리아 블로그 운영자의 저장소이다. 위에서는 텐서플로 0.9+파이썬 2.7 바이너리 패키지를 골랐다. 다른 패키지는 텐서플로 설치 문서를 참고.


이제 이 Dockerfile.을 어디 빈 폴더에 넣고 새로운 이미지로 빌드한다.

docker build -t merong .

merong은 새 이미지의 이름(태그)이다. 빌드 후에는 위의 4단계에서 실행할 이미지를 새 이미지 이름으로 바꾼다.

docker run -it -p 8888:8888 merong



추가: 물론 변경한 파일 내용을 계속 기록하고 싶다면 도커 컨테이너를 계속해서 갱신해야 한다. 가령 컨테이너 이름을 dev로 정해서 쓴다고 하면 다음과 같은 식으로. 사실 도커를 처음 쓰다 보니 다른 사람들은 어떻게 쓰는지 모르겠다(...).

docker run -it -p 8888:8888 --name=dev merong:dev
docker commit dev merong:dev
docker rm dev


사족으로, 이 환경에서 virtualenv를 설치하고 파이썬 3 환경으로 바꾸는 시도를 했으나, matplotlib였던가 pandas였던가가 설치되지 않았다. 포기하고 2.7 기준으로 쓰기로 함.



Posted by 필유