dockerfile에서 jupyter의 python 버전 지정

소개



처음으로 기사를 쓰므로 보기 어려워도 용서해 주세요. . .

도커와 jupyterlab과 파이썬



최근 docker 공부하기 시작하고, docker상에서 jupyterlab 달리게 하는 고마움을 느끼고 있었다.
하지만 문제 발생.
내가 좋아하는 tensorflow 1.12를 설치할 수 없어.

원인은 최신 jupyter가 배포하는 docker 이미지의 python3 버전이 3.7이기 때문입니다.
(tensorflow1.13사용하면 좋다고 하는 츳코미는 받아들이지 않는다.그렇지만, 연구실의 GPU서버 아직 아프데 하고 있지 않는 것.환경 가지런히 하고 싶다)

그래서 python3.6.8을 설치하고 싶지만 여러가지 빠졌기 때문에 메모 몹시.

아나콘다 이용



당연하지만 jupyter 사용하고 있기 때문에 당연히 이미지 안에 처음부터 아나콘다가 들어있다.
그런 다음 Dockerfile에서 anaconda의 python3.6.8 환경을 만들고이 녀석을 jupyter 커널에 추가합니다.

문장으로 쓰는 것이 귀찮아졌기 때문에 Dockerfile을 드러낸다. (처음부터 그렇게)

Dockerfile은 이런 느낌
# jupyterのイメージ
FROM jupyter/base-notebook

LABEL Obaka Engineer

#bashを使う(なくてもよかったかも)
SHELL ["/bin/bash", "-c"]

# python3.6.8のインストール(-nのところは名前なのでpy368とかでもいい)
# python=のところでバージョンを指定してあげる
RUN conda create -n python3.6.8 python=3.6.8 anaconda
# このあとpipとかipythonとか使うんだけど,そのままだとデフォの環境パス使われるので注意
ENV pip /opt/conda/envs/python3.6.8/bin/pip
ENV ipython /opt/conda/envs/python3.6.8/bin/ipython
ENV jupyter /opt/conda/envs/python3.6.8/bin/jupyter

# name, display-nameはconda createで作成したときの名前(今回はpython3.6.8っていう名前)
RUN $ipython kernel install --user --name=python3.6.8 --display-name=python3.6.8
RUN $pip install environment_kernels
# この環境でのjupyter設定ファイルの作成(途中でなんか聞かれるのクリアするために,Yを渡しておく)
RUN echo "y" | $jupyter notebook --generate-config
# jupyterのデフォルトカーネルに作ったイメージを入れる
RUN echo "c.MultiKernelManager.default_kernel_name = python3.6.8" > ~/.jupyter/jupyter_notebook_config.py

이것을 build하고 브라우저로부터 jupyter를 시작한다.
docker에서의 포트 설정이라든가는 다른 사람의 기사를 참고해 주세요.
그건 그렇고, 나는 docker-compose를 사용하고 있습니다.

콘솔을 열면 기본 python3 외에도 이전에 설정 한 이름 인 python3.6.8이 포함됩니다 (예 :).


마음이 들면, docker-compose를 사용한 jupyter로 한 번 설정한 테마를 재빌드해도 초기화되지 않도록 유지하는 방법을 쓰고 싶습니다.

좋은 웹페이지 즐겨찾기