見出し画像

Dockerを使う必要性(自己学習用)その1

1.Dockerを使う場面


T社とS社で共同でレコメンドシステムを機械学習を用いて開発するとした。

T社がまず最初にアルゴリズム構築を行うこととした。
-numpy
-python
-sklearn

このパッケージを用いて作成したとする。
これをS社に共有したいとする。

S社も同様な
Pythonの環境とパッケージのインストールを手動で行う。

1.2 環境構築での問題

そこで何個か問題を置きました。

Problem
* もし複数の分析者がいるとその人数ごとに環境構築を行う必要性がある。
*     手順書が必要
*.     パッケージの違いによるエラーの発生

この問題もありますが、最も大きな問題がOSが違うこと。

1.3 Dockerを使えば解決する!

ここでDockerが出てきます

Dockerのメリットとして
⇨LinuxOSがあれば、OSを統一させる(しているように見せる)
⇨環境構築の手順をコードで準備できるようにした。(Dockerファイルとも言う)
ただし、一人が犠牲になる。。。。(Dockerファイルを作成する)

Dockerを使う際は、
docker bulidとdocker run
これをターミナル上で書くだけです。(もっと詳しく続きはありますが、それは後ほど)

2.Dockerの仕組み

Docker Fileというのを作成する
そこにはどのようなバージョンのライブラリがあるかどうかが記載されてある。
Pythonのバージョンなども記載されている
共通させたい情報を入れている

これを docker buildというコマンドを用いてdocker imageを作成させる。

その後、実際にそのdocker imageを
起動させる為にdocker run コマンドを用いる。

以上でdockerの環境は作成できましたが、jupyterなどのアプリケーションと連携がされていないので、ターミナル上でしかPythonを用いることができません。そのため、ローカル環境にマウントさせる必要があります。

それはまた今度説明します。

3.DockerがどのようにWindowsOSやMacOSで動いているのか?

LinuxOSでDockerを用いる際は、直接dockerと接続ができます。

しかし、WindowsやMacはLinuxOSではないので、バーチャル環境を作成させてあげ、LinuxOSを介して接続している。
図で表すとこんな感じです。


この記事が気に入ったらサポートをしてみませんか?