こんにちは、ツヨシです。 暑い日が続き、ぐったりしています。
いまだにマスクが鬱陶しくて外出が嫌になります。
さて、前回Kagglerになると宣言してみました。 そのためには色々と知識が必要なようです。
その中の1つに開発環境の構築があります。 開発環境についてはDockerと言われる仮想環境で構築する方法が便利とのことです。
というのもKaggleなどのデータサイエンスをするための環境を使用する場合にいろんなマシンをつかうことになります。例えば今使っているMacだったり、AmazonなどのAWSだったり、会社のPCだったりです。この際に設定している環境が異なると、プログラムの動作が異なってきます。このため、仮想環境を使い同じ環境を構築することでこの差異をなくします。
なので、今回はこのDockerを使い、環境構築における導入部分について書いていきたいと思います。
Dockerとは
Docker社が提供している仮想環境を構築するツールです。この仮想環境はコンテナと呼ばれるイメージを作成してその上で動かすことになります。
仮想環境はホストOS上に別のOS環境を作成するものでVirtual BoxやVagrantなどがあります。この仮装環境のメリットとしてはホストOSの環境を変更せずに別のOSを作成することができる、複数のOSを同時に動作させることができるなどがあります。
Kaggleを使う際に仮想環境を使うのはホストOSの環境を変更したくないのと、仮想環境を作っておくことで、別のマシンでもすぐに同じ環境を作成することができるというメリットがあるためです。
Dockerはホストマシンのカーネルを利用してDocker Engineにより動かすことで軽量で高速に動かすことができます。Virtual Boxなどの仮想マシンなどはゲストOSを動かす必要がありこのため通常よりもパフォーマンスが落ちます。
このように色々とメリットがあるのですが、当分は自分のホストOSの環境、つまりMac上でも問題なくKaggleの実行はできるだろうと思いますが、あえて使ってみようと思いました。このDockerはデータサイエンティスト界隈でよく使われているということと、知らなかった技術なので使ってみようと思いました。
そして、今後この技術は必要だなと思い今回Dockerについて学んでいこうと考えています。
Dockerをインストールする
まずはDockerのインストールが必要になります。Dockerのアプリは以下からダウンロードすることができます。
この中のDocker Desktopより自分のホストOSのイメージを選択してインストールします。
Dockerの動作確認
Dockerをインストールしたなら、Dockerが動いていることを確認します。Macの場合は上のアイコンメニューのDockerマークより確認できます。このDockerマークをクリックして、緑色となり"Docker Desktop is running"となっていればDockerが動作していることになります。
動いていなければアプリのアイコンよりDockerを起動します。
Docker hubへの登録
Dockerコンテナを共有できるサービスにDocker Hubがあります。
Docker Hub上には様々な種類のコンテナが存在しており、ここから自分の実行したいコンテナを持ってくることで、容易に仮装環境を構築することができます。このためDocker Hubへの登録が必要になります。 登録方法は至って簡単で、メインページよりSign upを選択します。ユーザ名、パスワード、メールアドレスなどが必要なになりますのでそれぞれ準備します。
ユーザ名は今後、Docker hubを使用する際にパブリックリポジトリを公開する時のリポジトリ名になりますので、十分に考える必要があります。
ターミナルよりDocker hubへlogin
ターミナルよりDocker hubへログインします。ログインすることで、コンテナをクラウドから持ってくることができます。ログインコマンドは以下になります。
$ docker login
Dockerイメージを自分のPCに持ってくる(pull)
Dockerイメージを自分のPCに持ってきます。次のようなコマンドにより実行することができます。
$ docker pull <image>
今回は"hello-world"というイメージを持ってきます。次のコマンドにより実行します。
$ docker pull hello-world
実行後以下のような実行結果が出てきます。
hello-worldを実行する(run)
持ってきたhello-worldのイメージを実行します。 実行方法は以下のコマンドにより実行できます。
$ docker run <image>
今回は"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のこの講座を受講してまとめています。
非常に詳しく解説しており、かなりためになります。