はじめてのDocker～試してみる

#はじめに
前回は[はじめてのDocker～導入編](https://qiita.com/sat0tabe/items/f5681fdd03ebc4a7c418)でwindows10のPCでDockerのインストールをするをやりました。
今回は実際にDockerと触れ合ってみようと思います。

#実際に使ってみる
######Dockerイメージを落とす
`docker run -d -p 8080:80 httpd`でhttpdをインストールと同時に実行してくれます
※ `-p 8080:80`の部分の説明ですがこれはローカルの8080ポートをhttpdコンテナの80ポートにフォワーディングしているということです。

 
実行結果
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/0014ae83-3523-601f-2e34-af9cc21a19c6.png)

`docker images`で確認してみます
 ![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/eb734ba1-880f-1175-2b96-217255648c81.png)
httpdが入っていますね。

ブラウザで確認してみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/242ac8f4-31c2-3c46-da23-29f280a1b0cf.png)
Hyper-VのVM上でhttpdが動いたということですね。

#コンテナの確認
`docker ps -a`でコンテナの一覧を確認してみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/6674bfe8-496d-1322-93dd-c63e79cf8097.png)

上記で起動したhttpdを停止させるには以下のコマンドを使用してください。
`docker stop <NAMES>`
ちなみに起動は`docker start <NAMES>`です。

#コンテナで遊ぶ
##DockerでHello World
Dockerfileからイメージを生成してみます。

まずは` docker ps`で現在起動中のコンテナを確認し、起動中のコンテナを停止していきます。
`docker stop <NAME>`を実行します。

`docker ps -a` を実行して停止中のコンテナも含めて一覧表示します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/b8c06e79-b26c-7751-3e71-8f13c5ecf312.png)

-----
それでは停止したコンテナを削除します。
`docker rm <NAME>`
で削除できます。
`docker ps -a`でコンテナが削除されたか確認してください。

削除できていたら、次はイメージも削除します。

----
`docker images`でイメージの一覧が確認できます。
`docker rmi イメージID` で削除していきます。

これで綺麗さっぱりになったので
あらためてnginxのコンテナを作成します。

`docker run -d -p 8080:80 --name webserver nginx`
もう簡単ですね。

続いて、Dockerfileを作成していきましょう。

----

まずはローカルの何処かにディレクトリを作ります。
その中にDockerfileという名前のファイルと、index.htmlファイルを作成します。
index.htmlの中身をブラウザに表示させたいと思います。
index.html内に「Hello world！」と記述して保存しておきます。

###Dockerfileの中身

``` Dockerfile

#FROM：媒体にするイメージ名。ローカルになければ dockerhub から取ってくる
FROM nginx

#MAINTAINER：メンテナンスする人、このファイルを作成した人の名前を記述。
MAINTAINER sat0tabe

#ADD：ファイルを指定したパスに配置するコマンド。今回はローカルにある先ほど作成したindex.htmlを指定したパスに配置します。
ADD index.html /usr/share/nginx/html/

```

###buildします
これをbuildしてイメージを生成してみます。

`docker build -t sat0tabe/nginx:1.0 .`
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/575ce263-a8ab-1670-0536-7b9f8a5b7caf.png)


`docker images`で確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/6e3b5a0b-d602-1930-c26f-3627bd07e67a.png)


ビルドしたコンテナーイメージを基にコンテナーを実行し、Webブラウザーやcurlコマンドなどで`http://localhost:8080/`のレスポンスを確認してみましょう

`docker run -d -p 8080:80 sat0tabe/nginx:1.0`
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/6b266525-c921-705d-d2ff-d0c71345715b.png)

`curl http://localhost:8080/`
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/b85be914-75aa-ab04-7018-e8dc04ea6b4c.png)

ブラウザでは
![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/d8864dbf-cfc3-7c65-c78a-68a3a32f6eb5.png)


#おわり
基礎的なことはなんとなくできましたが、業務で扱えるようになるまでまだまだって感じですね。

#おまけ
##Kitematicをインストールしよう

Kitematic（カイトマティック）とはGUIのツールです。便利なのでぜひインストールしよう。

##インストール手順

- タスクトレイのDockerを右クリック
- 「Kitematic」を選択
- Download Kitematicウィンドウが開くので、Downloadボタンをクリック
- ZIPファイルがダウンロードされるので、解凍後、以下のパスになるようにフォルダ名を変更し移動しておく
    - `C:\Program Files\Docker\Kitematic`

![image.png](https://qiita-image-store.s3.amazonaws.com/0/80457/27b6e62a-36df-3cc2-a972-fbe50330a154.png)

起動するとこんな画面が開きます。