Dockerhub 에 JupyterLab 혹은 Jupyter Notebook 을 더이상 업데이트하지 않고 있음을 알게 되었다. 귀찮긴 하지만, python 이미지를 가지고 jupyter 설치를 하면 되긴하니까. 그렇게 이미지를 만들어서 로컬pc에 jupyter lab 환경을 띄우는 것까지 해보려한다.
(docker hub 페이지 메시지 중..)
Images hosted on Docker Hub are no longer updated. Please, use quay.io image
docker image 만들기
python 도커이미지 중에 3.12 버전을 선택하기로 했다. 그리고, 나는 데비안os 환경이 익숙해서 slim-bookworm 으로 선택했다. 아래 docker pull
명령어로 바로 받아도 되긴하지만, 이러면 jupyterlab 이 없는 상황이니, Dockerfile 로 나만의 도커이미지를 만들어야 한다.
docker pull python:3.12-slim-bookworm
Dockerfile 은 아래와 같이 작성했다.
FROM python:3.12-slim-bookworm
# 필요한 패키지 설치
RUN apt-get update; \
apt-get install -y apt-utils vim zsh curl git locales tzdata;
# jupyterlab 설치
RUN pip install jupyterlab
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
RUN dpkg-reconfigure -f noninteractive tzdata
이미지를 빌드한다. slim 이미지다보니 오래걸리진 않았다.
docker build -t python-3.12 .
docker 이미지목록을 보면 맨위에 이미지가 만들어진 것을 확인할 수 있다.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python-3.12 latest a14c2fdd4e89 27 minutes ago 582MB
만들어진 이미지를 실행해보자. 로컬pc 에서 도커환경에 접속할 수 있도록 포트를 열어놔야 하고, jupyterlab 은 8888
포트를 사용하고 있다.
docker run -it --rm --name my-python-3.12 \
-p 8888:8888 \
python-3.12 bash
접속되면, 설치가 잘되었는지 version 확인한번 해준다.
$ jupyter --version
Selected Jupyter core packages...
IPython : 8.28.0
ipykernel : 6.29.5
ipywidgets : not installed
jupyter_client : 8.6.3
jupyter_core : 5.7.2
jupyter_server : 2.14.2
jupyterlab : 4.2.5
nbclient : 0.10.0
nbconvert : 7.16.4
nbformat : 5.10.4
notebook : not installed
qtconsole : not installed
traitlets : 5.14.3
아래의 명령어를 실행하면 jupyter lab 서비스가 시작된다. 도커환경 밖에서 접속해야 하기 때문에 --ip 0.0.0.0
을 넣어주도록 한다. 시작되면 접속할 주소를 만들어서 보여줄 것이다.
$ jupyter lab --allow-root --ip 0.0.0.0
그리고나서 웹브라우저를 열어서 입력하면 아래와 같이 접속할 수 있다.