[Jupyter Notebook] docker를 이용한 jupyter notebook 사용

반응형

그림 1) jupyter Logo

서버를 사용하다 보면 docker를 이용해서 사용자 환경을 구성해야 하는 경우가 있습니다. 

 

이번엔 서버에서 docker를 이용하여 jupyter-notebook을 띄우고, 일반 로컬 컴퓨터에서 접속하는 방법에 대해 알아보겠습니다.

 

또한, 주피터 노트북 커널 추가하는 방법을 알아보겠습니다.

 

* 환경 세팅

1) docker 설치https://www.leafcats.com/153

 

리눅스에 도커(Docker) 설치하기

도커는 리눅스 뿐만 아니라 Mac이나 Window(10 이상으로 알고 있다.) 에서도 사용할 수 있다. 하지만 맥이나 윈도우에서 보다는 리눅스 환경에서 도커를 사용하게 될 것이다. 리눅스 환경의 PC에서 ��

www.leafcats.com

2) docker를 이용해 jupyter notebook 가져오기

 

docker pull jupyter/datascience-notebook

https://hub.docker.com/r/jupyter/datascience-notebook/

 

Docker Hub

 

hub.docker.com

1. 포트 55551이 열려 있을 때 명령어

docker run -it -p 55551:55551 \

-e GRANT_SUDO=yes --user root \

--name jupyter-notebook \

-v $(pwd):/home/jovyan/work jupyter/datascience-notebook \

jupyter notebook --no-browser --allow-root \

--port 55551 --ip=0.0.0.0 \

--NotebookApp.password='sha1:462a cba5ec0xxa5432155c2123992929a735a3121aab50812345' \

--notebook-dir='~'

 

  • 포트 55551이 열려있기 때문에 p 옵션으로 55551:55551을 줍니다.
    1. -p (연결할 호스트의 포트 번호):(컨테이너의 포트 번호)

 

  • -v 옵션은 어떤 위치를 저장 공간으로 할지 설정하는 옵션입니다.
    1. 현재 디렉토리(cwjcsk의  디렉토리에서 실행)
    2. 도커 가상환경에서의 디렉토리 /home/jovyan/work 디렉토리 내부에 cwjcsk  디렉토리를 연결시킵니다.

 

  • -e GRANT_SUDO=yes 옵션 주피터 내부에서 sudo 권한을 이용하여 여러 가지 툴들을 다운로드할 수 있게 해 줍니다. 이에 따라, 뒷부분에 jupyter notebook 옵션으로 --allow-root를 줘야 정상 작동합니다.

 

  • --NotebookApp.password는 ipykernel에서 from notebook.auth import passwd을 실행하여 설정한 비밀번호에 대한 해쉬값을 가져와 설정합니다.

 

  • --notebook-dir=’~’ : 노트북이 저장될 기본 디렉터리는/home/jovyan  디렉토리로 설정합니다.

 

이후에, docker start jupyter-notebook을 해서 jupyter-notebook을 실행시켜고,

컴퓨터에서 크롬을 키고, [서버 ip]:55551를 입력하면 아래처럼 juptyer notebook 화면이 나옵니다.

위에서 설정한 비밀번호를 입력하고 들어가면 됩니다.

<jupyter notebook 로그인 화면>

 

2. 주피터 노트북의 커널 다루기

  • kernel list 확인 : jupyter kernelspec list

<jupyter notebook kernel list>

  • 예시) python2 커널 추가하는 방법
    1. 파이썬 2 설치:  sudo apt-get install python2
    2. 파이썬 2에서 pip 설치:  sudo apt-get install python-pip
    3. 파이썬 2에서 ipykernel 설치:  python2 -m pip install ipykernel
    4. 파이썬 2의 ipykernel을 주피터 노트북에 추가:  python2 -m ipykernel install --user

3. 장점

docker를 이용하여 서버에서 jupyter-notebook을 띄워봤습니다.

그냥 서버에서 jupyter-notebook을 띄워도 되는데 왜 굳이 docker를 이용했을까요??

 

1) docker를 이용하면 나만의 독립된 가상 환경을 구축함으로써, 다른 사용자의 가상 환경과 충돌하지 않을 수 있습니다.

예를 들어, 나만의 Nbextension, 나만의 주피터-노트북 테마를 이용할 수 있습니다.

 

2) docker의 장점을 그대로 쓸 수 있습니다.

① 독립된 컨테이너를 사용하기 때문에 깔끔하게 사용할 수 있습니다. (툴들의 상호 의존을 깔끔하게 관리할 수 있습니다.)

② 역시 독립된 컨테이너이기 때문에 삭제할 때도 깔끔히 정리가 가능합니다.

③ 다른 시스템과의 호환성이 매우 좋습니다.

 

이번엔 docker를 이용해서 jupyter-notebook을 띄우는 방법을 알아보았습니다.

다음에 더 좋은 글로 찾아오겠습니다.
읽어주셔서 감사합니다.

Reference)

그림 1) jupyter Logo :  https://www.dataquest.io/blog/jupyter-notebook-tutorial/

반응형

댓글

Designed by JB FACTORY