Docker Image: 파이썬 기반 머신러닝 학습용 이미지

Docker Image: 파이썬 기반 머신러닝 학습용 이미지

파이썬으로 데이터를 분석하고 머신러닝을 수행하기 위해서 필요한 환경을 Docker 이미지 ‘pyml‘을 만들어 운영하고 있습니다. 컴퓨터에 Docker가 설치되어 있다면 바로 Docker 이미지를 다운받아 사용할 수 있습니다.

pyml’ 더커 이미지는 주기적으로 업데이트되며 docker hub 레파지토리에서 운영됩니다.

이 문서에서는 ‘pyml’ 더커 이미지의 주요 정보와 설치 방법에 대한 최신 정보를 제공하겠습니다.


pyml Docker 최신 정보

pyml Docker 이미지 버전

pyml Docker 이미지 버전은 다음 URL의 Tags 페이지에서 확인 할 수 있습니다.

2018.10.07 현재 ‘pyml’ Docker 이미지의 최신 버전은 ‘0.1.10’ 입니다.

pyml’ Docker 이미지 환경

pyml’ 더커 이미지에는 다음과 같은 자바와 파이썬 환경이 설치되어 있습니다.

  • Machine Learning 환경
    • Java Version: Java 8 (8.181.13)
    • Python Version: 3.6
    • Python 라이브러리
      • opencv-python: 3.4.2
      • beautifulsoup4: 4.6.3
      • notebook: 5.7.0
      • numpy: 1.15.2
      • pandas: 0.23.4
      • scikit-learn: 0.20.0
      • seaborn: 0.9.0
      • bokeh: 0.13.0
      • matplotlib: 3.0.0
      • tensorflow: 1.11.0
      • Keras: 2.2.4
      • torch: 0.4.1

pyml 컨테이너 변경 관련 요약

주요 변경 로그

Date Version Desc
2018.10.06 0.1.10 OpenCV 설치, Torchtext 추가
2018.08.30 0.1.08 graphviz 추가
2018.08.06 0.1.07 konlpy 추가, ubuntu 18.04 변경
2018.07.06 0.1.01 최초 배포

변경 관련 주요 문서

작성일 제목
2017.10.07 PYML: OpenCV 3.4.2 지원
2017.07.08 Docker Image: 파이썬 기반 머신러닝 학습용 이미지

pyml 컨테이너 관리

현재 사용 중인 운영체제에 Docker가 설치되어 있다고 가정하고 이미지를 설치 실행 및 종료하는 방법을 소개합니다.

pyml 더커 이미지 설치

다음 명령으로 더커 컨테이너를 다운받고 실행할 수 있습니다. -v 옵션으로 로컬 컴퓨터의 디렉터리를 지정합니다. 앞에서 지정한 디렉터리는 ‘pyml’ 컨테이너의 /root/ipython에 연결됩니다.

>docker run -itd -p 8888:8888 -p 6006:6006   \
-v /devspace/pytorch:/root/ipython   \
--name pyml      \
taewanme/pyml:latest

>0b5ee2af902ea823ff0372a9ccc0fbe194eb1c52152de14933da8bce0d0da241

docker run -idt 명령으로 데몬 형태로 더커 컨테이너를 실행합니다. -p,-v,--name``` 옵션으로 포토 설정, 디텍러티 볼륨 마운트 및 컨테이너 명을 설정합니다.

옵션 옵션 설명 현제 설정값 설정값 섦명
-p 포트 설정, 호스트 컴퓨터 포트와 더커 컨테이너의 포트 포워드 설정 -p 8888:8888
-p 6006:6006
호스트 8888 포트를 컨테이너 8888에 연결(jupyter 접속 용)
호스트 6666 포트를 컨테이너 6666에 연결(tensorboard 접속 용)
-v 볼륨 설정, 호스트 컴퓨터 디텍터리를 더커 컨테이너에 마운트 -v /devspace/pytorch:/root/ipython 호스트 /devspace/pytorch를 컨테이너 /root/ipython에 마운트
–name 컨테이너 이름 설정 –name pyml 컨테이너 명 pyml로 설정

컨테이너가 실행되면 다음 명령으로 컨테이너 실행 상태를 확인할 수 있습니다.

> docker ps --all

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                            NAMES
0b5ee2af902e        taewanme/pyml:latest   "/bin/bash start-not…"   3 minutes ago       Up 3 minutes        0.0.0.0:6006->6006/tcp, 0.0.0.0:8888->8888/tcp   pyml
>

컨테이너의 jupyter 서비스 접속 및 활용

컨테이너가 실행되면 http://localhsot:8888 주소로 jupyter에 접속할 수 있습니다. Jupyter에 접속하면 패스워드 요청 페이지가 오픈됩니다. 패스워드는 Welcome1입니다.

패스워드를 입력하고 이동한 페이지에서 노트북을 만들고 파이썬 코드르 수행할 수 있습니다.

노크북을 만들면 다음과 같이 코드를 입력하고 수행할 수 있습니다.

컨테이너의 jupyter 종료

docker stop 명령으로 컨테이너를 종료하고, docker ps 명령으로 컨테이너 프로세스 상태를 확인할 수 있습니다.

> docker stop pyml
pyml
> docker ps -all
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                        PORTS               NAMES
0b5ee2af902e        taewanme/pyml:latest   "/bin/bash start-not…"   32 minutes ago      Exited (137) 11 seconds ago
>

pyml 컨테이너와 이미지 삭제

docker rm 명령으로 컨테이너를 삭제하고, docker container ls 명령으로 컨테이너 목록을 확인할 수 있습니다.

> docker rm pyml
pyml
> docker container ls -all
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
>

docker rmi 명령으로 이미지를 삭제하고, docker images 명령으로 더커 이미지을 확인할 수 있습니다.

> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
taewanme/pyml       latest              823a55c894d0        20 hours ago        2.88GB
> docker rmi taewanme/pyml:latest
Untagged: taewanme/pyml:latest
Untagged: taewanme/pyml@sha256:c02dc2009b3bc20cb952fa27bfde64acf200acca75c250da97593c8c2b0ba83e
Deleted: sha256:823a55c894d003b985736164a0e2753f3679c259f52031bc1fa0a33bf5bb204d
Deleted: sha256:6ebf9e6163e3da895248c340984846e5ddb6bcbd6f9e5372e88ec02ad5accd0f
Deleted: sha256:80dbc3fda391e5664252e36b0948c295bdcad68334c2fa92176dccfc5f0f32e0
Deleted: sha256:fe7d183b729bbc766f5803fd19e149db4f69bdc07d160d4b6ed2720dccb3ed4f
Deleted: sha256:66c8bb652e6f7b792aadba8b3e95ccf6f278be866a2a03bb8692733cd923fef2
Deleted: sha256:d17ccf6f6dcffee261a47dc6f363c4019024f075fdf442d32cae5bbf8f771d61
Deleted: sha256:9d27577fdbc5a9c7efc2a04f4537d9c001b719b06c557980019868b49457beda
Deleted: sha256:b6708b96d9c7e3a1422347357a97e15d0438db3fa05ce0fff4cb11ad50c1ea2b
Deleted: sha256:ef572e1ba2ecca900f0ec3db00e997de12dd380ce3e360b5813fd75920232359
Deleted: sha256:98fc4d5421178c7be7d5718d2d44abba8053dc5c712e51658fe5b872675b4f7a
Deleted: sha256:7b2cc05dfd889e28234f8831c80ac20cf299d5bbebbbac013f8f7d2b7abc0d65
Deleted: sha256:6b0187d1cdff63eb5966ac72bf4ccd96150586c1409eb858bb98783f02018ee7
Deleted: sha256:644879075e24394efef8a7dddefbc133aad42002df6223cacf98bd1e3d5ddde2
> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
>
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com