Dockerfileの作成
FROM ubuntu:latest
# -yはインストールの際全てyesで答え、インストールする
RUN apt-get update && apt-get install -y \
# ubuntu上でroot以外のユーザーがroot権限でコマンドを打ちたい時に使用
sudo \
# httpを使ってデータをダウンロードする
wget \
# エディター
vim
# anacondaのインストローラの保存場所
WORKDIR /opt
# anacondaのインストローラをダウンロードする。
RUN wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh
apt-getはubuntuのパッケージ管理ツールで、「\」区切りでパッケージを分けて記述すると、何がインストールされているのかが分かり易い
##Dockerfileでコンテナのビルド
-#これでubuntuのパッケージと、optディレクトリの中にanacondaのインストローラがダウンロードされる。
% docker build .
-# 作成したコンテナの起動
% docker run -it コンテナID bash
-# optになっているのは「WORKDIR /opt」の指定があるため
-# インストローラがあることを確認する。
root@85a5e79aa6c2:/opt# ls
Anaconda3-2019.10-Linux-x86_64.sh
-# インストローラの実行
# sh Anaconda3-2019.10-Linux-x86_64.sh
1.エンターを押し続ける
2.yesと答える
3.どこにインストールするか聞かれるので/opt/anaconda3とする
4.init(初期化)するか聞かれるので、yesと答える
5.「Thank you for installing Anaconda3!」と表示されたらダウンロードされている。
しかしながらパスを通していないため、「python」は使えない。
##パスを通すとは
環境変数$PATHに、パスを追加することでコンピュータがプログラムをそのパスから探してきてくれる。
##環境変数の確認
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
##pythonを探す
-# 「anaconda3」ディレクトリに移動
# cd anaconda3
-# 「bin」ディレクトリに移動
# cd bin
-# 「python」の起動
# ./python
-# パスの確認
# pwd
Pythonが起動したのが確認できる。つまりパスを通すとは「/opt/anaconda3/bin」を通す。
パスを通す
-# pythonから出る。
>>> exit()
-# パスの追加(=の両隣に半角スペースは無し)
# Export PATH=/opt/anaconda3/bin:$PATH
-# パスの確認
# echo $PATH
-#/opt/anaconda3/binが追加されていることがわかる。
/opt/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-# 「opt」に移動
# cd /opt
-# pythonの起動確認
# python
パスを通したことにより、Pythonが「opt」ディレクトリでも起動したことがわかる。
##インストローラのオプションの確認
-# sh -x インストローラのファイル
# sh -x Anaconda3-2019.10-Linux-x86_64.sh
Anaconda2-2019.10-Linux-x86_64.shに使えるオプションが表示され今回は**-bと-pを使う。
-bはバッチモードで起動。Dockerfileで使う場合に使用。インタラクティブな操作を回避する。
-pはデフォルトは「/root/anaconda3」**で、指定することで任意の場所にインストールできる。
再度「anaconda3」を消してインストールできるか確認する。
-# anaconda3の削除
# rm -r anaconda3/
-# インストローラからダウンロード及びoptディレクトリ内にanaconda3の作成
# sh Anaconda3-2019.10-Linux-x86_64.sh -d -p /opt/anaconda3
異常なくダウンロードされたことが確認できる。
##Dockerfileの更新
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
sudo \
wget \
vim
WORKDIR /opt
#------------ここから変更------------#
RUN wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh && \
# インストローラからダウンロード及びoptディレクトリ内にanaconda3の作成
sh https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3 && \
# インストローラーの削除
rm -f Anaconda3-2019.10-Linux-x86_64.sh
# パスを通す$PATHは自己参照
ENV PATH /opt/anaconda3/bin:$PATH
# 「pip」はpythonのパッケージを管理するツール
RUN pip install --upgrade pip
CMD [ "jupyter","lab","--ip=0.0.0.0","--allow-root","--LabApp.token=''" ]
Dockerfileでコンテナのビルド
% docker build .
% docker run -p 8888:8888 作成したコンテナID
これでコンテナにjupyterlabが立ち上がり、localhost:8888で接続できることが確認できる。
##ファイルシステムの共有
-# どこでもいいので共有するファイルを作成する
% mkdir ds_python
-# 共有するファイルのパスの確認
% pwd
-# コンテナの共有ファイルは今回は「work」ディレクトリとする。コンテナ名は「my-lab」
% docker run -p 8888:8888 -v 共有するファイルのパス:/work --name my-lab 作成したimage名
localhost:8888で確認し、「work」ディレクトリが作成されていることを確認する。
jupyterlabでworkディレクトリで何かしらファイルを作成し、ホスト側の「ds_python」ファイルの中身を確認し、jupyterlabで作成したファイルが存在していることを確認する。