🔥알림🔥
① 테디노트 유튜브 - 구경하러 가기!
② LangChain 한국어 튜토리얼 바로가기 👀
③ 랭체인 노트 무료 전자책(wikidocs) 바로가기 🙌

2 분 소요

이번 포스팅에서는 도커(docker)로 패키징한 주피터 노트북(jupyter notebook) 컨테이너를 실행하여 매우 쉽고 빠르게 노트북 서버를 구동하는 방법 에 대해 공유드리고자 합니다.

(참고) GPU 버전의 딥러닝 도커deepko repository를 참고해 주시기 바랍니다. 관련 포스팅은 머신러닝/딥러닝(PyTorch, TensorFlow) 최신 도커(docker) 업데이트 안내 에서 확인하실 수 있습니다.

주피터 노트북 도커 이미지

가장 유명한 데이터 사이언스 도커 이미지는 jupyter 에서 유지보수하는 jupyter/datascience-notebook 입니다.

pull 횟수가 1천만회 이상 입니다.

jupyter/datascience-notebook (출처: DockerHub jupyter)

jupyter/datascience-notebook docker image

jupyter notebook 서버를 도커 이미지로 제공하고 있으며, 다양한 파이썬 버전을 제공한다는 점이 특징입니다. 데이터 사이언스에 필수패키지(numpy, pandas, matplotlib, seaborn 등) 가 포함되어 배포되고 있다는 점이 특징입니다.

jupyter 에서 배포하는 도커 이미지도 충분히 좋지만, 한글 폰트미설치 되어있고, 제가 개인적으로 자주 활용하는 패키지가 포함되어 있지않아 jupyter/datascience-notebook 를 확장하여 도커 이미지를 제작하였습니다.

teddylee777/datascience-notebook

이번에 배포한 데이터 사이언스 전용 도커 이미지는 데이터 사이언스에 필요한 필수 패키지를 포함하고 있을 뿐만 아니라, jupyter notebook 서버 설정을 포함하고 있기 때문에 간단한 명령어 한 줄로 노트북 서버를 구동 할 수 있습니다.

도커허브 주소

  • https://hub.docker.com/r/teddylee777/datascience-notebook

주요 환경

  • os: linux
  • python: 3.10.11
  • port: 8888
  • conda 환경
  • 한글 폰트 포함(Nanum Gothic, D2Coding)

주요 설치 패키지 목록

beautifulsoup4                4.12.2
bokeh                         2.4.3
boto3                         1.28.42
catboost                      1.2.1
chromadb                      0.4.9
conda                         23.3.1
dash                          2.13.0
dask                          2023.5.1
fastapi                       0.99.1
Flask                         2.2.3
Flask-WTF                     1.1.1
folium                        0.14.0
gradio                        3.42.0
graphviz                      0.20.11
huggingface-hub               0.16.4
hyperopt                      0.2.7
ipykernel                     6.23.1
jupyter                       1.0.0
jupyterlab                    4.0.0
kaggle                        1.5.16
langchain                     0.0.283
librosa                       0.10.1
lightgbm                      4.0.0
matplotlib                    3.7.1
missingno                     0.5.2
mlxtend                       0.22.0
networkx                      3.1
nltk                          3.8.1
notebook                      6.5.4
numpy                         1.23.5
openai                        0.27.10
openpyxl                      3.1.2
optuna                        3.3.0
pandas                        1.5.3
pandasai                      1.1.2
pip                           23.1.2
plotly                        5.16.1
prophet                       1.1.4
pycaret                       3.0.4
PyMySQL                       1.1.0
regex                         2023.8.8
requests                      2.31.0
scikit-learn                  1.2.2
scipy                         1.10.1
seaborn                       0.12.2
selenium                      4.2.0
SQLAlchemy                    1.4.49
statsmodels                   0.14.0
streamlit                     1.26.0
tqdm                          4.65.0
wordcloud                     1.9.2
xgboost                       1.7.6

구동방법

(만약, 도커가 설치되어 있지 않다면 Docker를 활용하여 딥러닝/머신러닝 환경을 10분만에 구성하고 jupyter notebook 원격 연결하기을 참고해 주세요.)

도커가 설치되어 있다면, 다음의 명령어로 실행할 수 있습니다.

인스턴스 실행 명령어

docker run --rm -it -p 8888:8888 -v 로컬PC에마운트할경로:/home/jovyan/ teddylee777/datascience-notebook:latest

로컬PC에마운트할경로 에는 jupyter notebook 서버 실행 후 마운트 하고 싶은 폴더 경로를 지정하면 됩니다.

예를 들어 저는 다음의 명령어로 볼륨 마운트를 하여 실행합니다.

실행 예시: /Users/teddy/Dev/workspace 폴더를 마운트

docker run --rm -it -p 8888:8888 -v /Users/teddy/Dev/workspace:/home/jovyan/ teddylee777/datascience-notebook:latest

실행 후 터미널에서 다음과 같이 성공적으로 실행 되었다는 메시지를 확인할 수 있습니다.

실행 결과

브라우저에서 http://localhost:8888/ 로 접속시 jupyter notebook 이 잘 열리는 것을 확인합니다.

만약, detached 상태로 jupyter notebook 을 띄우고 싶다면 -d 옵션으로 실행합니다.

detached 상태로 컨테이너 실행 명령어

docker run --rm -itd -p 8888:8888 -v 로컬PC에마운트할경로:/home/jovyan/ teddylee777/datascience-notebook:latest

docker ps 명령어로 컨테이너가 실행 중인지 확인합니다.

detached 실행 결과

정상 구동되었으며, 마찬가지로 http://localhost:8888/ 로 접속하면 jupyter notebook 이 떠있는 것을 확인할 수 있습니다.

한글 폰트 설치확인

다음의 예제 코드를 실행하여 한글 폰트가 정상 설치되었음을 확인합니다.

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd

print(f'matplotlib: {matplotlib.__version__}')
print(f'pandas: {pd.__version__}')

# Unicode warning 제거 (폰트 관련 경고메시지)
plt.rcParams['axes.unicode_minus']=False

# 그래프 출력 사이즈 설정
plt.rcParams["figure.figsize"] = (10, 6)

# NanumGothic
plt.rcParams['font.family'] = "D2Coding"
data = {
    '한글테스트': [10, 20, 30, 40, 50]
}
pd.DataFrame(data).plot(kind='bar')
plt.title('한글 폰트 테스트', fontsize=15)
plt.show()

한글폰트 설치 확인

댓글남기기