ubuntuでjupyter-labを起動するdockerfileを記述する


はじめに

udemyでdockerの講座を受けたので備忘録として一部分を自分なりにまとめてみます。
今回はdockerfileにubuntuベースでjupyter-labを起動するコードを書き、実際にコンテナを作成してみたいと思います。

dockerfileに記述

dockerfile

# FROM => べースとなるイメージの選択する
FROM ubuntu:latest

# RUN => コマンドを呼び出す
# apt-getをアップグレードし必要なパッケージのインストールする
RUN apt-get update
RUN apt-get install -y \
    wget \ 
    vim

# WORKDIR => コンテナ側のルート直下に任意のディレクトリを作成し移動する
WORKDIR /opt

# anaconda3のインストールし、元の実行ファイルを削除する
# wget => URLを指定してファイルをダウンロードする
# sh => シェルスクリプトを実行する
# -b => インタクティブな操作を回避する
#  -p => インストール先の指定する
#  rm => 指定したファイルの削除する
#  -f => 強制的に実行する
RUN wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh && \
    sh /opt/Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3 && \
    rm -f Anaconda3-2019.10-Linux-x86_64.sh

#  anaconda3のPATHを通す
#  ENV => 環境変数を変更する
ENV PATH /opt/anaconda3/bin:$PATH

#  pipのアップグレード
RUN pip install --upgrade pip

#  root直下に戻る
WORKDIR /

#  コンテナ起動時にjupyter labを開く
#  CMD => コンテナ起動時に実行するコマンドの指定する
#  "jupyter", "lab" => jupyter labを立ち上げる
#  "--ip=0.0.0.0" => ipの制限をなくす
#  "--allow-root" => rootユーザを許可する、セキュリティ上は良くない
#  "LabApp.token=''" = > トークンなしで起動可能する。セキュリティ上良くない
CMD ["jupyter", "lab", "--ip=0.0.0.0", "--allow-root", "--LabApp.token=''"]

イメージのビルド

Dockerfileが置いてあるディレクトリで実行


docker build -t my-anaconda .

-t
ビルドするイメージに任意の名前をつけます。

.
dockerfileのあるディレクトリを指定しています。
今回はカレントディレクトリである. を指定します。

コンテナの起動


docker run -it \
-p 8888:8888 \
--rm \
--name my-container(任意)\
-v Desktop/ds_python:/opt \
my-anaconda



この部分は下記参照してください
https://qiita.com/kajima/items/178611c4c405267271a6

このコンテナをrunすると

I 11:42:41.250 LabApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 11:42:41.535 LabApp] All authentication is disabled.  Anyone who can connect to this server will be able to run code.
[I 11:42:41.546 LabApp] JupyterLab extension loaded from /opt/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 11:42:41.546 LabApp] JupyterLab application directory is /opt/anaconda3/share/jupyter/lab
[I 11:42:41.548 LabApp] Serving notebooks from local directory: /
[I 11:42:41.548 LabApp] The Jupyter Notebook is running at:
[I 11:42:41.548 LabApp] http://23a5a126fd40:8888/
[I 11:42:41.548 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 11:42:41.552 LabApp] No web browser found: could not locate runnable browser.



このような画面が出てくるとOK

あとはウェブブラウザにlocalhost:8888を入力して確認してみます。





これが画面で出てくるとOK

終わりに

あとはanacondaに任意のライブラリやパッケージ欲しい時はdockerfileにRUNを記述すればインストールできます。
次はWeb開発におけるdockerfileを記述してみたいなと思っています。

参考

https://qiita.com/komiya_____/items/96c14485eb035701e218
https://www.udemy.com/course/aidocker/learn/lecture/20311429#overview