ツヨシのブログ

技術的な事とか日常の事とか徒然なるままに

スポンサーリンク

【Day003】Dockerを使ったKaggle開発環境の構築(その1)::Dockerの導入

スポンサーリンク

こんにちは、ツヨシです。 暑い日が続き、ぐったりしています。

いまだにマスクが鬱陶しくて外出が嫌になります。

さて、前回Kagglerになると宣言してみました。 そのためには色々と知識が必要なようです。

ginga0118.hatenablog.com

その中の1つに開発環境の構築があります。 開発環境についてはDockerと言われる仮想環境で構築する方法が便利とのことです。

というのもKaggleなどのデータサイエンスをするための環境を使用する場合にいろんなマシンをつかうことになります。例えば今使っているMacだったり、AmazonなどのAWSだったり、会社のPCだったりです。この際に設定している環境が異なると、プログラムの動作が異なってきます。このため、仮想環境を使い同じ環境を構築することでこの差異をなくします。

なので、今回はこのDockerを使い、環境構築における導入部分について書いていきたいと思います。

Dockerとは

Docker社が提供している仮想環境を構築するツールです。この仮想環境はコンテナと呼ばれるイメージを作成してその上で動かすことになります。

www.docker.com

仮想環境はホストOS上に別のOS環境を作成するものでVirtual BoxやVagrantなどがあります。この仮装環境のメリットとしてはホストOSの環境を変更せずに別のOSを作成することができる、複数のOSを同時に動作させることができるなどがあります。

Kaggleを使う際に仮想環境を使うのはホストOSの環境を変更したくないのと、仮想環境を作っておくことで、別のマシンでもすぐに同じ環境を作成することができるというメリットがあるためです。

Dockerはホストマシンのカーネルを利用してDocker Engineにより動かすことで軽量で高速に動かすことができます。Virtual Boxなどの仮想マシンなどはゲストOSを動かす必要がありこのため通常よりもパフォーマンスが落ちます。

このように色々とメリットがあるのですが、当分は自分のホストOSの環境、つまりMac上でも問題なくKaggleの実行はできるだろうと思いますが、あえて使ってみようと思いました。このDockerはデータサイエンティスト界隈でよく使われているということと、知らなかった技術なので使ってみようと思いました。

そして、今後この技術は必要だなと思い今回Dockerについて学んでいこうと考えています。

Dockerをインストールする

まずはDockerのインストールが必要になります。Dockerのアプリは以下からダウンロードすることができます。

www.docker.com

この中のDocker Desktopより自分のホストOSのイメージを選択してインストールします。

f:id:ginga0118:20200901054257p:plain

Dockerの動作確認

Dockerをインストールしたなら、Dockerが動いていることを確認します。Macの場合は上のアイコンメニューのDockerマークより確認できます。このDockerマークをクリックして、緑色となり"Docker Desktop is running"となっていればDockerが動作していることになります。

f:id:ginga0118:20200901054425p:plain

動いていなければアプリのアイコンよりDockerを起動します。

Docker hubへの登録

Dockerコンテナを共有できるサービスにDocker Hubがあります。

hub.docker.com

Docker Hub上には様々な種類のコンテナが存在しており、ここから自分の実行したいコンテナを持ってくることで、容易に仮装環境を構築することができます。このためDocker Hubへの登録が必要になります。 登録方法は至って簡単で、メインページよりSign upを選択します。ユーザ名、パスワード、メールアドレスなどが必要なになりますのでそれぞれ準備します。

ユーザ名は今後、Docker hubを使用する際にパブリックリポジトリを公開する時のリポジトリ名になりますので、十分に考える必要があります。

ターミナルよりDocker hubへlogin

ターミナルよりDocker hubへログインします。ログインすることで、コンテナをクラウドから持ってくることができます。ログインコマンドは以下になります。

$ docker login f:id:ginga0118:20200901054501p:plain

Dockerイメージを自分のPCに持ってくる(pull)

Dockerイメージを自分のPCに持ってきます。次のようなコマンドにより実行することができます。には必要なコンテナ名を入れます。

$ docker pull <image>

今回は"hello-world"というイメージを持ってきます。次のコマンドにより実行します。

$ docker pull hello-world

実行後以下のような実行結果が出てきます。

f:id:ginga0118:20200901054530p:plain

hello-worldを実行する(run)

持ってきたhello-worldのイメージを実行します。 実行方法は以下のコマンドにより実行できます。

$ docker run <image>

今回は"hello-world"を実行しますのでを"hello-world"に置き換えて実行します。

実行した結果は以下のようになりました。

❯ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

まとめ

このようにしてDockerを導入して仮想環境上でhello-worldまで実行しました。 簡単ですね。

次はDockerをつかってUbuntuのイメージを実行してみたいと思います。

ちなみに私はUdemyのこの講座を受講してまとめています。

www.udemy.com

非常に詳しく解説しており、かなりためになります。

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門