서버를 사용하다 보면 docker를 이용해서 사용자 환경을 구성해야 하는 경우가 있습니다.
이번엔 서버에서 docker를 이용하여 jupyter-notebook을 띄우고, 일반 로컬 컴퓨터에서 접속하는 방법에 대해 알아보겠습니다.
또한, 주피터 노트북 커널 추가하는 방법을 알아보겠습니다.
* 환경 세팅
1) docker 설치: https://www.leafcats.com/153
2) docker를 이용해 jupyter notebook 가져오기
docker pull jupyter/datascience-notebook
https://hub.docker.com/r/jupyter/datascience-notebook/
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을 줍니다.
- -p (연결할 호스트의 포트 번호):(컨테이너의 포트 번호)
- -v 옵션은 어떤 위치를 저장 공간으로 할지 설정하는 옵션입니다.
- 현재 디렉토리(cwjcsk의 홈 디렉토리에서 실행)
- 도커 가상환경에서의 디렉토리 /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 화면이 나옵니다.
위에서 설정한 비밀번호를 입력하고 들어가면 됩니다.
2. 주피터 노트북의 커널 다루기
- kernel list 확인 : jupyter kernelspec list
- 예시) python2 커널 추가하는 방법
- 파이썬 2 설치: sudo apt-get install python2
- 파이썬 2에서 pip 설치: sudo apt-get install python-pip
- 파이썬 2에서 ipykernel 설치: python2 -m pip install ipykernel
- 파이썬 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/
'Programming > Jupyter notebook' 카테고리의 다른 글
[Jupyter Notebook] 윈도우에서 실행 위치 설정 (0) | 2021.07.28 |
---|---|
[Jupyter Notebook] 유용한 단축키! Custom 포함 (0) | 2020.10.22 |
[Jupyter Notebook] Warning 무시(경고 무시) (0) | 2020.09.22 |
[Jupyter Notebook] 예쁘게! 자유롭게! 테마 설정 (6) | 2020.08.01 |
[Jupyter Notebook] 확장 기능! Nbextensions (1) | 2020.07.25 |