LoginSignup
0
0

More than 3 years have passed since last update.

Dockerを使ったデータ解析環境の構築(個人的備忘録)

Posted at

Dockerfileの作成

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の更新

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で作成したファイルが存在していることを確認する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0