본문 바로가기
Programming/AI

도커에 파이썬 + Anaconda 환경 구축하기

by 제타 2018. 6. 21.
반응형

가상화 기술에는 하이퍼바이저 기반과 컨테이너 기반이 있는데 도커는 컨테이너 기반입니다.


컨테이너의 개념에 대해서는 다른 포스팅에 자세히 설명해보도록 하겠습니다.


일단 저희는 환경 구축을 위해서 파이썬 + Anaconda 환경을 세팅하겠습니다.


다른 사람이 우분투에 아나콘다의 기본적인 패키지만 설치해놓은 미니콘다 이미지를 다운받아서 사용할 예정입니다.


도커에서 이미지를 가져오는 명령어는 pull 입니다.


그럼 다음처럼 docker pull continuumio/miniconda3으로 가져오도록 하겠습니다.


다운이 다 되고 이미지를 실행하겠습니다.


docker run -i -t continuumio/miniconda3 /bin/bash를 입력하여 실행하도록 하겠습니다.



그럼 리눅스 환경이 되고 간단하게 파이썬 명령어를 한번 날려보겠습니다.


print(1+1)을 날렸더니 2가 출력이 되었네요.


이미지 환경에 다른 변경을 가해도 commit을 하지 않고 빠져 나오면 저장이 되지 않습니다.


따라서 초기 환경을 세팅해놓고 commit을 하도록 하겠습니다.


저희가 이 아나콘다에 설치할 것은 beautifulsoup과 requests 입니다.


pip install beautifulsoup4를 입력하여 설치하고


이후 pip install requests를 설치하였습니다(이미 설치가 되어있다고 하네요)


그리고 exit를 입력하여 빠져나옵니다.




이제 저장(commit)을 하기 위해 exit를 통해 빠져나온 후 dokcer ps -a를 실행하여 방금 실행했던 이미지의 id를 알아내야합니다.




그리고 commit 하는 방법은 다음과 같습니다. 



mlearn:init으로 명명을 했고 이후 실행할 때에는 저 이름을 사용하시면 됩니다.


이제 제 로컬 pc의 폴더를 마운트하여 실행해보겠습니다. 


이렇게 안하면 저 안에서 모두 개발을 해야하는데 그럼 너무 번거롭겠죠?


docker run -i -t -v 마운트할경로:이름 mlearn:init /bin/bash



저같은 경우는 $HOME/ai 폴더를 ai이름으로 마운트하였습니다.


그리고 ls를 쳐보니 ai가 실제로 들어와있네요^^


이제 저 안에서 파이썬 코드들을 짜놓고 아나콘다로 실행해보면 되겠습니다.


그럼 간단하게 웹사이트에서 이미지를 다운받는 예제를 실행해보겠습니다.


코드에서는 urllib의 request를 사용했습니다.


먼저 아까 로컬의 ai폴더에 아래의 코드 저장해놓습니다. (test.py)


import urllib.request

url = "https://cdn.namuwikiusercontent.com/s/a22a4f26506f0f90386205bd7d055fae6f0e69fd3800266d26e2
f38f4f2c0925a5e5b0b4454b284dd4061707ed79e1252dca94ebe7a7c3be59c3db746fb63670d245ecb063ec52e23e7af
e5e61fdb057?e=1534534636&k=Z-FEC_twCD7QRqoIQRi-8A"

savename = "img.png"

urllib.request.urlretrieve(url, savename)

print("sv")


그리고 다시 도커로 돌아와서 실행해보도록 하겠습니다.


(base) root@297884bdea04:/ai/ch1# python3 test.py


그럼 해당 경로에 img.png 이미지가 저장된 것을 확인하실 수 있습니다.

반응형