Dockerイメージが continuumio/anaconda3 で公開されているので利用はとても簡単です。
JupyterLab(Jupyer Notebook の後継)を使いたいなら
docker run -it -p 8888:8888 continuumio/anaconda3 /bin/bash -c "\
conda install jupyter -y --quiet && \
mkdir -p /opt/notebooks && \
jupyter lab \
--notebook-dir=/opt/notebooks --ip='*' --port=8888 \
--no-browser --allow-root \
--NotebookApp.token=''"
Jupyter Notebook の方なら
docker run -it -p 8888:8888 continuumio/anaconda3 /bin/bash -c "\
conda install jupyter -y --quiet && \
mkdir -p /opt/notebooks && \
jupyter notebook \
--notebook-dir=/opt/notebooks --ip='*' --port=8888 \
--no-browser --allow-root \
--NotebookApp.token=''"
で実行後、ブラウザから http://localhost:8888/ にアクセスすれば OK です。
root ユーザーの許可、トークン無しのログインを許すオプションを付けているので、閉じた環境のみで使うなどの注意はしてください。
必要なパッケージを毎回追加するのは面倒
→ Dockerイメージをカスタマイズ
前回の様な事をする場合、毎回パッケージをインストールするのは面倒なので、追加済みの Docker イメージを作っておくと便利です。
ということで以下のような Dockerfile を作成して、パッケージを追加済みのイメージを作りました。今回追加したパッケージは、
- sqlite3
- scikit-learn
- mplfinance
- yahooquery
です。
FROM continuumio/anaconda3
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
sqlite3 \
&& apt-get clean \
&& rm -r /var/lib/apt/lists/* \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN pip install --upgrade pip && \
pip install scikit-learn && \
pip install mplfinance && \
pip install yahooquery
RUN conda install jupyter -y --quiet && \
mkdir -p /opt/notebooks
WORKDIR /opt/notebooks
EXPOSE 8888
ENTRYPOINT ["jupyter", "lab", "--ip='*'", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token=''", "--notebook-dir=/opt/notebooks"]
で、この Dockerfile のあるディレクトリで
docker image build -t myjn -f Dockerfile .
とすれば、イメージが作成できます。イメージの名前は myjn にしてみました。
実行する場合は、
docker run -it \
-p 8888:8888 \
-v $PWD/notebooks:/opt/notebooks \
--rm \
myjn
で OK です。Docker 停止後も JupterLab で作成したファイルが残るように、ホストPC の ./notebooks ディレクトリを使うようにしています。
今週、ちょっと株価戻ったんですね。
2023/12/08 追記
起動時の “Would you like to receive official Jupyter news?” という通知を止めるには、次のコマンドを先に実行しておきます。
jupyter labextension disable "@jupyterlab/apputils-extension:announcements"
例えば以下の様になります。
docker run -it -p 8888:8888 continuumio/anaconda3 /bin/bash -c "\
conda install jupyter -y --quiet && \
mkdir -p /opt/notebooks && \
jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
jupyter lab \
--notebook-dir=/opt/notebooks --ip='*' --port=8888 \
--no-browser --allow-root \
--NotebookApp.token=''"
コメント