본문 바로가기

Dev Platform/Docker

[Docker] jupyter notebook(쥬피터 노트북) 포함하여 이미지 만들기

반응형

안녕하세요. 

쥬피터 노트북을 포함하는 Dockerfile을 만들고 이미지를 만들겠습니다.

우선 기본 이미지로 이전 포스팅에서 만들 Dockerfile을 기반으로 만들겠습니다.

2019/03/31 - [Dev Platform/Docker] - [Docker] python3 도커 이미지 만들기 ( 파이참 포함 )

 

[Docker] python3 도커 이미지 만들기 ( 파이참 포함 )

이전 포스팅 2019/03/31 - [Dev Platform/Linux] - [Docker] image를 계층 분리해서 관리 ( Dockerfile ) [Docker] image를 계층 분리해서 관리 ( Dockerfile ) 안녕하세요. 저는 이거 저거 많이 해보는 개발자라...

tobelinuxer.tistory.com

우선 완성된 Dockerfile 내용은 아래와 같습니다.

FROM dev:ubuntu_18.04_py3

RUN pip install jupyter

RUN pip install matplotlib

RUN jupyter notebook --generate-config --allow-root

RUN echo "c.NotebookApp.password = u'sha1:6a3f528eec40:6e896b6e4828f525a6e20e5411cd1c8075d68619'" >> /root/.jupyter/jupyter_notebook_config.py

EXPOSE 8888

ENTRYPOINT jupyter notebook --allow-root --ip=0.0.0.0 --port=8888 --no-browser

4~5 : 쥬피터 노트북 기본 설정 파일을 만들고 패스워드를 root로 설정

6~7 : 외부에서 8888포트로 접근을 허용하며, 컨테이너 시작시 쥬피터 노트북 실행

 

이전과 마찬가지로 아래와 같이 도커 이미지를 만듭니다.

docker build --tag dev:ubuntu_18.04_py3_jupyter .

 

빌드후 이미지게 제대로 생성됬는지 확인합니다.

 

 

생성한 이미지를 기반으로 아래와 같이 컨테이너를 실행합니다.

docker run -it --rm -p 8888:8888 -v `pwd`:/home/root/test dev:ubuntu_18.04_py3_jupyter

--rm : 컨테이너가 exit 상태로 전환되면, 컨테이너 삭제

-v : Host 펄더와 컨테이너 폴더 연결

쥬피터 노트북의 시작 디렉토리가 /home/root 이기 때문에 위와 같이 연결해줍니다.

-p : Host 포트를 컨테이너 포트로 포트 포워딩 수행

 

호스트의 웹 브라우져로 아래와 같이 접속해봅니다.

패스워드는 Dockerfile에서 설정한데로 root 입니다.

비밀번호는 root입니다.

 

접속 첫 화면입니다.

아래 화면의 pycharm.tar.gz 파일은 이전 이미지 만들때 pycharm 설치를 위해 다운로드 한 파일입니다.

이파일을 지운다고 이미지 용량은 줄어들지 않으니 그냥 둡니다.^^

test 폴더가 보입니다. 도커 컨테이너 실행시 host 폴더와 연결한 폴더입니다. test 폴더에 들어갑니다.

 

python 파일을 만들고, 적당한 코딩을 아래와 같이 합니다.

제대로 동작하는 군요~

 

Host 폴더에도 해당 파일이 생성되어있음을 확인할 수 있습니다.

컨테이너가 삭제되도 소스코드는 남아있겠죠?

 

여기까지 하겠습니다.

감사합니다.

반응형