100日後にエンジニアになるキミ - 96日目 - 開発環境 - Docker について2

昨日までのはこちら

[100日後にエンジニアになるキミ - 95日目 - 開発環境 - Docker について](https://qiita.com/otupy/items/4569ffc8a1bd90bcd0b9)

[100日後にエンジニアになるキミ - 94日目 - 開発環境 - 仮想化について](https://qiita.com/otupy/items/0b8db399900a5517eb97)

[100日後にエンジニアになるキミ - 91日目 - 運用 - 監視について](https://qiita.com/otupy/items/532d0f78b103d3b39b2d)

[100日後にエンジニアになるキミ - 90日目 - 開発 - CIについて](https://qiita.com/otupy/items/25786feaaa1b1f4d203f)

[100日後にエンジニアになるキミ - 88日目 - データ - データ転送について](https://qiita.com/otupy/items/e720e175c83a84e101c9)

[100日後にエンジニアになるキミ - 86日目 - データベース - Hadoopについて](https://qiita.com/otupy/items/0016a1b9f496627619b6)

[100日後にエンジニアになるキミ - 76日目 - プログラミング - 機械学習について](https://qiita.com/otupy/items/6a4f960ba4df06e27050)

[100日後にエンジニアになるキミ - 70日目 - プログラミング - スクレイピングについて](https://qiita.com/otupy/items/f53e2e7d16adf80b5acf)

[100日後にエンジニアになるキミ - 66日目 - プログラミング - 自然言語処理について](https://qiita.com/otupy/items/5828ac7450c5ba8d6931)

[100日後にエンジニアになるキミ - 63日目 - プログラミング - 確率について1](https://qiita.com/otupy/items/0196897ae4d2134794fa)

[100日後にエンジニアになるキミ - 59日目 - プログラミング - アルゴリズムについて](https://qiita.com/otupy/items/f1a5e81633b868f3b5ed)

[100日後にエンジニアになるキミ - 53日目 - Git - Gitについて](https://qiita.com/otupy/items/0abaad82a7f3fea73f1f)

[100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて](https://qiita.com/otupy/items/d1765f1541a104ed6133)

[100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて](https://qiita.com/otupy/items/7af17635d576677606dc)

[100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1](https://qiita.com/otupy/items/6d1e5453f530e07b7aec)

[100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1](https://qiita.com/otupy/items/2f71d5f9c754b29d9555)

[100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1](https://qiita.com/otupy/items/61a97863f6df14171994)

[100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1](https://qiita.com/otupy/items/cd2315dcb38671cfded0)

本日は`Docker`の続きです。

## Dockerの導入方法

とりあえずこれから始めますと言う人の場合
まず`Docker`をダウンロードしないといけません。

### Dockerのインストール

インストーラーはここにあります。

[Docker](https://www.docker.com/get-started)

<img width="303" alt="スクリーンショット 2020-06-24 11.33.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/cd99d2b5-77a5-9e8a-f050-b9d7a2721248.png">

イメージ(インストーラー)をダウンロードします。

Macの場合はイメージを開いて
アプリケーションのコピーして終わりです。
`Docker`マークをアプリケーションフォルダにドラッグしてコピーは終わりです。

<img width="567" alt="スクリーンショット 2020-06-24 11.39.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/9c3fdbce-00d3-e394-be30-9cad136edce6.png">

Windowsは多分インストーラーをクリックしてインストールだろうと思います。

### Dockerの起動とチュートリアル

Macの場合はアプリケーション起動できます。

アプリケーションから開くと初めての場合はこんな画面になるかも知れません。

チュートリアルをやってみましょう。`Start`をクリックして進みます。

<img width="524" alt="スクリーンショット 2020-06-24 11.41.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/1f6a1bf5-2a2a-d371-9265-46831e86a581.png">

先に進むとこのような画面になります。
右側にはコンソールが表示されます。

<img width="563" alt="スクリーンショット 2020-06-24 11.44.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/dba4a243-fc01-e6c4-98fb-e9a2907224dc.png">

青字の部分をクリックして`github`からプロジェクトをクローンしてきます。
`git clone・・・`の部分をクリックするとコンソールでコマンドが実行されます。

<img width="492" alt="スクリーンショット 2020-06-24 11.48.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/61e6a866-c0b8-5572-0b78-adb875656e2f.png">

これで自分のPCにプロジェクトが出来たかと思います。

`Next Step`で次に進むと、また新しいコマンド実行が促されるので
これも青字の部分をクリックしてコンソールを動かします。
`cd getting・・・`の部分をクリックします。

<img width="509" alt="スクリーンショット 2020-06-24 11.52.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/9b965824-68d1-095a-46cd-266559e9ea53.png">

下記のコマンドが実行され`Docker`の`build`コマンドが実行されます。

`docker build -t docker101tutorial .`

`docker build`コマンドでは`Dockerfile`を元にしたコンテナーの起動
構成、Dockerイメージの作成までを実行します。

コンソールを見ているとログがたらたら流れていくので
処理が終わるまで眺めながら・・・数分待ちます。

処理が終わると`Dockerイメージ`が出来てると思います。
`docker images`　コマンドを実行してみます。

<img width="623" alt="スクリーンショット 2020-06-24 12.08.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/565ba5f2-f05c-aec2-c1ff-1f875b5cf419.png">

ここではいくつかの`Dockerイメージ`が確認できます。
`Dockerイメージ`とは`コンテナ`の土台となるものです。

ここからDockerのコンテナを起動していきます。
Next Stepから次のコマンドへ移ります。

<img width="491" alt="スクリーンショット 2020-06-24 12.30.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/613d2540-9cec-eef1-b55e-69e9d8764421.png">

`docker run`コマンドはコンテナを起動状態で作成します。
青字をクリックしてコマンドを実行します。

<img width="480" alt="スクリーンショット 2020-06-24 12.34.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/4aaece9e-2140-6687-3e66-c4d007f8c019.png">

これでコンテナが起動できました。

動いているコンテナを見るには`docker ps -a`を使います。

<img width="527" alt="スクリーンショット 2020-06-24 12.40.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/897048c8-3db7-36b6-81de-6390758f0807.png">

これでコンテナの起動が確認できました。
ブラウザーからアクセスしてみましょう。

`localhost:80`にアクセスすると
チュートリアルサイト画面を見ることができると思います。

<img width="882" alt="スクリーンショット 2020-06-24 12.51.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/2cdc4929-1b24-7e7c-611b-a690e0141a82.png">

イメージを共有するなどの際は`Docker Hub`への登録が必要なようです。
登録をするしないは自由ですので

いったんここでチュートリアルを抜けて
dockerのダッシュボード画面からも確認が行えます。

<img width="613" alt="スクリーンショット 2020-06-24 12.56.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/ea35cc2f-3045-2e11-bd87-9ed8c666b2a2.png">

コンテナの起動、停止などもこの画面で行うこともできます。

### dockerの使い方

いろいろあると思いますが
人が作った環境を使う人は

1.Dockerイメージを取得
2.コンテナを作成
3.コンテナを起動

と言うような使い方になり
イメージを1から作る人は

1.Dockerfileを作成
2.Dockerイメージを作成
3.Dockerイメージを配布(共有)

というような感じになります。

初めは用意された環境の読み込みができれば良いと思いますので
Dockerのイメージって何だっけと言うところから
抑えて行けば良いかなと思います。

本当はもっともっと細かいので
まずはざっくりで良いと思います。

## まとめ

docker自体は覚えることが多すぎるので
言葉の意味や定義を抑えながら少しづつコマンドを覚えていきましょう。

次回も引き続きdockerの内容やコマンドについて触れていきます。

君がエンジニアになるまであと04日

## 作者の情報
乙pyのHP：
http://www.otupy.net/

Youtube：
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter：
https://twitter.com/otupython