Profile picture

[Docker] 도커로 주피터 노트북(Jupyter Notebook) 서버 구축하기

JaehyoJJAng2023년 05월 12일

▶︎ Jupyter Notebook

오픈소스 기반의 웹 플랫폼으로,

파이썬을 비롯한 다양한 프로그래밍 언어로 코드 작성 및 실행하는 개발 환경을 구축할 수 있다.

이번 게시글에서는 주피터 노트북을 도커로 구축하는 방법에 대해서 알아볼 것이다.


▶︎ 컨테이너 생성

도커 이미지의 경우 주피터 노트북에서 공식적으로 지원하는 이미지인 quay.io/jupyter/datascience-notebook:2024-03-14를 사용할 것이다.

이미지 업데이트 내용은 https://hub.docker.com/u/jupyter에서 확인할 수 있다.


‣ Docker run

Docker run으로 주피터 노트북 컨테이너를 띄우는 방법은 아래와 같다.

docker run -d -it --name jupyter \
-p 10000:8888 \
-v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2024-03-14
  • -v 플래그를 사용하면 컨테이너에서 호스트의 현재 작업 디렉토리가 마운트된다.
  • 컨테이너 실행 후, 브라우저에서 http://<hostname>:10000/?token=<token>으로 접속하면 jupyterLab이 로드된다.

‣ Docker Compose

Docker Compose를 사용하여 컨테이너를 띄우는 방법은 아래와 같다.

본인의 경우 Docker Compose V2.20.3 버전 이상부터 지원되는 옵션인 include를 사용하여

서비스들을 분리하여 관리할 것이다.


{% include codeHeader.html name="~/jupyter/docker-compose.yaml" %}

version: "3.9"

include:
  - "composes/jupyter-notebook.yaml"

networks:
  jupyter-net:
    driver: bridge
    external: false

{% include codeHeader.html name="~/jupyter/composes/jupyter-notebook.yaml" %}

services:
  code-server:
    image: quay.io/jupyter/datascience-notebook:2024-03-14
    restart: always
    volumes:
      - type: bind
        source: "../"
        target: "/home/jovyan/work"
    container_name: jupyter
    ports:
      - "10000:8888"
    networks:
      - "jupyter-net"

아래 명령을 사용하여 컨테이너를 실행

docker-compose up -d --build

‣ 접속

컨테이너가 정상적으로 생성되었다면

http://<server_ip>:10000으로 접속해보자.
image
위와 같은 화면이 나올텐데 Password or token 이 부분에 토큰 값을 넣어주어야 로그인이 가능하다.


토큰 값은 아래 명령어를 실행하여 확인할 수 있다.

docker-compose logs | grep 'token='

image
위 토큰을 입력하고 로그인을 하면된다.


Loading script...