このシリーズでは、データサイエンス初心者でもできるようにDocker(ドッカー)を用いて分析環境を構築していきます!
このシリーズを読むことで、Dockerとはなにかを理解できるだけなく、Dockerによる環境構築(特に分析用の環境構築)ができるようになります!
Docker(を含めたインフラ分野の知識)はデータサイエンティストではもはや実務では必須の知識です。
今回の記事では以下のことを扱います!
- Dockerとかなにか理解する
- Dockerのメリットを理解する
- Dockerをローカル環境で簡単に触る
今回Dockerの内容を記事化した理由は、現在のデータサイエンスを専攻している大学生は授業でDockerを習っており、今すぐにでも覚えるべき知識だからです!
ぜひDockerを学んで使っていきましょう!
今回の記事はMacOSでかつバージョンが10.14以上(CtalinaまたはMojave)を想定しています。
WineyTradeの記事にでてくるコードはLINE@にて配布をしております!
LINEのメッセージ欄に各記事のキーワードをお送りいただければ、ダウンロードリンクを送付いたします!
ソースコードを見逃したくない方は、今のうちにLINE登録をしておいてくださいね!

それでは一緒にまなんでいきましょう!
Dockerとはなにか理解しよう

まずは、Dockerとはどういったものなのか解説していきます!
Dockerはデータサイエンスではもはや必須の知識となっていますので是非抑えましょう!
Dockerとは
プログラミングをする環境を作る際に用いられるツール。
Dockerイメージとよばれる環境の設計図をもとに、Dockerコンテナとよばれる実際の環境を作成できる。そのとき、イメージによってそれぞれ別々でコンテナを作成することができ、開発環境(プログラミングを実行する環境)を分けて作業することができる。

引用:Docker入門② -Dockerイメージ ハンズオン-
Dockerの説明にかいてあったように、DockerにはDockerイメージとDockerコンテナというものがあります。
Dockerイメージとは、「どのような開発環境をつくるか」といった設計図のようなものです。
これに対しDockerコンテナとは、設計図をもとに実際につくられた実体です。
例えるなら、Dockerイメージが車の設計図でDockerコンテナが車にあたります。
実際の使い方は後ほど教えますが、Dockerはイメージとそこからつくられるコンテナというものがあることだけ抑えましょう!
Dockerがデータサイエンティストに求められる理由
Dockerがデータサイエンティストに求められる理由として、社会のデータ分析のニーズのトレンドが変わってきている点にあります。
今まではモデル作成が主な業務だったのですが、現在はモデルからデータ分析システム開発などエンジニアリング(特にインフラ領域)のニーズが求められています。
膨大な量のデータを学習し将来の予測や画像の分類などをおこなうような、機械学習のモデルを作成すること


特にDockerやAWS(クラウドサービス)の知識は、プロジェクトごとでの分析や開発する環境としてかなり主流となっており、これらの知識がないと実務にかなり影響を及ぼしてしまいます。
そんなDockerですが、なぜそこまで覚えるメリット(必要性)があるのかみてきましょう!
Dockerを使用するメリットを理解しよう!

ここではDockerによるメリットを主に2つ説明していきます!
Dockerのメリットを知ることで、なぜDockerが使われているのかを理解することができます!
Dockerのメリット①-開発環境を分けてつくることができる
1つ目は「開発環境を分けてつくることができる」というメリットです。
Dockerはコンテナという単位で開発環境をつくると説明しましたが、
コンテナは基本的にいくつもつくれますし、それぞれのコンテナは別々のものとして扱うことができます。
例えば、pythonではnumpy やpandasなど様々なライブラリがありますが、これらを分析や環境ごとで開発環境を毎回変えずに使用していると、たまにバージョンによるコンフリクトを起こし、インストールができないときがあります。
この対処として、他のライブラリをアンインストールしたりなどをしますが、そもそも開発環境ごとにわける方が管理しやすいです。
イメージとしては、数学を勉強するときに英語の教材とかを目に見える範囲に置いても気が散るだけなので、数学の教材だけ目に見える場所に置く感じです。
この際、Dockerでは開発環境を分けてつくることができ便利です!
Dockerのメリット②-Dockerでつくった環境が他の人も同じ環境でできる
2つ目は「Dockerでつくった環境が他の人も同じ環境にすることができる」というメリットです。
Dockerの概念でDockerイメージがあると説明しましたが、このイメージは他の人を共有することができるため、Dockerでつくった環境が他の人も同じ環境にすることができます!
例えば、実務の場合、分析や開発に限らずチームで取り組むことが多いですが、このとき開発環境がそれぞれバラバラであった場合、開発環境のズレによるエラーを起こしかねません。
これをDockerでは解消することができます!
さらに、Dockerを使用すれば実務でおこなわれるテストやデプロイなどをする環境も簡単に揃えることができ、作業効率があがります!
他にもDockerはプロセスによる処理のためコンテナの立ち上げ時間が早いなど様々なメリットがありますが、ここでは割愛します!
Dockerをローカル環境で簡単に触ってみよう!
ここでは、実際にDockerイメージをもとにDockerコンテナを作成し、コンテナを起動するまでの流れを簡単にみていきます!
(今回はMacOSでの流れを想定しています。)
今回の記事はMacOSでかつバージョンが10.14以上(CtalinaまたはMojave)を想定しています。
Dockerをインストールする
基本的に【Mac】Dockerインストールを参考にセットアップをしていきます!
公式ドキュメントはこちら→Dockerの公式ドキュメント

Dockerを触ってみよう
ここでは、MacOSのターミナルを起動しdockerを触ってみます!
‘docker –version’コマンド実行してdockerがインストールされているか確認します!

次に’docker pull hello-world’ コマンドを実行しdockerhub(githubのようなdockerの公式サイト)からhello-worldというDockerイメージを取得します!

‘docker images hello-world’コマンドを実行し、hello-worldというイメージがあるか確認します!

そして、’docker run hello-world’コマンドを実行し、dockerをハローワールドします!!

ここでは、Dockerの簡単な動かし方をみていきました。
次回では基本コマンドを覚え、コンテナ上でpythonを実行していきます!
まとめ
今回は、
- Dockerとかなにか理解する
- Dockerのメリットを理解する
- Dockerをローカル環境で簡単に触る
次回はDockerの基本コマンドを学び、Dockerのコンテナ上でpythonを起動し、
今後株価を分析する上の準備をしていきます!
Dockerのシリーズを通し、データサイエンティストへの一歩を歩みましょう!
WineyTradeの記事にでてくるコードはLINE@にて配布をしております!
LINEのメッセージ欄に各記事のキーワードをお送りいただければ、ダウンロードリンクを送付いたします!
コード配布はLINE@にて!
