Slide 15
Slide 15 text
Jupyter-Lab imageのビルド
• 作業フォルダを作成し機械学習環境imageをビルドする為のDockerfileを配置
• 作業フォルダに移動してimageをビルド({作業directory}はDockerfileで指定するdir名)
$ mkdir {作業directory} && cd {作業directory}
$ sudo nano Dockerfile
$ docker build -t {任意のimageファイル名} . ← . は忘れないように
home
ubuntuのusername
docker
etc
Dockerfile
# ベースイメージ名:タグ名
FROM ubuntu:latest
# pipをアップグレードし必要なパッケージをインストール
RUN pip install --upgrade pip && ¥
pip install autopep8 && ¥
pip install numpy && ¥
pip install pandas && ¥
pip install matplotlib && ¥
pip install xlsxwriter && ¥
pip install Keras && ¥
pip install tensorflow
# コンテナ側:{username}はubuntuのusername、{作業directory}は任意の作業用フォルダ名
WORKDIR /home/{username}/{作業directory}
# コンテナ側のリッスンポート番号
EXPOSE 8888
# ENTRYPOINT命令はコンテナ起動時に実行するコマンドを指定(基本docker runの時に上書きしないもの)
# "jupyter-lab" => jupyter-lab立ち上げコマンド
# "--ip=0.0.0.0" => ip制限なし
# "--port=8888" => EXPOSE命令で書いたポート番号と合わせる
# ”--no-browser” => ブラウザを立ち上げない。コンテナ側にはブラウザがないので 。
# "--allow-root" => rootユーザーの許可。セキュリティ的には良くないので、自分で使うときだけ。
# "--NotebookApp.token=''" => トークンなしで起動許可。これもセキュリティ的には良くない。
ENTRYPOINT ["jupyter-lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token=''"]
# CMD命令はコンテナ起動時に実行するコマンドを指定(docker runの時に上書きする可能性のあるもの)
# "--notebook-dir=/workdir" => Jupyter Labのルートとなるディレクトリを指定
CMD [“--notebook-dir=/home/{username}/{作業directory}]
Dockerfileは以下の{username}と{作業フォルダ}を各自の環境に書換えてコピペ
作業フォルダをdockerにする場合
必要に応じてパッケージは追加・削除
{ }は不要、念のため