たぶん動くから！Docker始めてみよう！

#はじめに
この記事はDockerのインストール時のメモです。
Dockerのインストール方法から簡単なDockerの操作確認までを記します。

#インストール環境
macOS Catalina
バージョン 10.15.6

#インストール手順
1. [Dockerの公式サイト](https://www.docker.com/)からダウンロードする。
公式サイトで [Get Started] を押下。
![スクリーンショット 2020-10-09 23.25.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/238a288e-753d-e525-cafe-f6b2f6672020.png)
2. Docker Desktop の [Download for Mac] を押下。
![スクリーンショット 2020-10-09 23.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/0afcddd5-c8bb-167f-7d49-cedc616e0f22.png)
3. ダウンロードした `Docker.dmg` を開き、`Docker.app` を `Applications` にドラック&ドロップする。
![スクリーンショット 2020-10-09 23.56.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/8cabc829-ed2b-a95a-5ce5-63406fdaf828.png)
4. アプリケーションフォルダから `Docker.app` をダブルクリックして起動する。
この時、認証の設定等聞かれることがあるので聞かれた通りに答える。
5. メニューバーにクジラのマークの `Docker` のアイコンが出たらインストール完了！
![スクリーンショット 2020-10-10 0.06.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/43e3f301-fa03-ecc6-991c-a0f77ff866fb.png)

#コンテナの操作
Docker はターミナルで操作し、全て `docker` コマンドを用いる。
##コンテナの起動と確認
Docker の操作確認のために Docker Hub ( Git Hub の Docker版 ) で公開されている webサーバーである `nginx` コンテナを起動する。
コンテナの起動には `docker run` コマンドを用いる。

```sh
$ docker run nginx:1.19.3
```
最初はローカルにコンテナイメージがなかったため、イメージを取得し、以下のように表示される。

```sh
Unable to find image 'nginx:1.19.3' locally
1.19.3: Pulling from library/nginx
d121f8d1c412: Pull complete 
66a200539fd6: Pull complete 
e9738820db15: Pull complete 
d74ea5811e8a: Pull complete 
ffdacbba6928: Pull complete 
Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Status: Downloaded newer image for nginx:1.19.3
```

Docker を起動したまま別のターミナルから `docker ps` コマンドで `nginx` コンテナの起動を確認する。

```sh
$ docker ps
```

```sh
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
51d72c08c122        nginx:1.19.3        "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        80/tcp              gracious_lalande
```

`nginx` のバージョン1.19.3が `51d72c08c122` というIDで起動していることが確認できる。

##コンテナの停止
`docker ps` コマンドで取得した `CONTAINER ID` を指定して実行する。

```sh
$ docker stop 51d72c08c122
```
`docker ps` コマンドで確認する。

```sh
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
```
起動中のコンテナIDがないことが確認できる。

ちなみに `docker start` コマンドに先ほどのコンテナIDを指定すれば、同じコンテナを再び起動できる。

```sh
$ docker start 51d72c08c122
```

##コンテナの削除
コンテナの削除にはコンテナを停止後、コンテナIDを指定して `docker rm` コマンドを用いる。

```sh
$ docker rm 51d72c08c122
```

処理後、`docker start` コマンドに先ほどのコンテナIDを指定し起動してみると、

```sh
$ docker start 51d72c08c122
```

```sh
error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/51d72c08c122/start: EOF
Error: failed to start containers: 51d72c08c122
```
該当のコンテナIDの起動に失敗したというエラーが返ってきて、コンテナが削除されていることが確認できる。

##イメージ一覧
`docker images` コマンドでローカルのホストにあるイメージ一覧を表示することができる。

```sh
$ docker images
```

```sh
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.19.3              992e3b7be046        3 days ago          133MB
```

##イメージ削除

```sh
$ docker rmi nginx:1.19.3
```


#コンテナでイメージを作成・共有
次はコンテナでイメージを作成・共有してみます。
→[たぶん動くから！Docker でイメージを作成して共有してみよう！](https://qiita.com/leafeon00000/items/09c4341f88ed3d8a74be)