そろそろDockerから逃げるのをやめて練習にAWSCLI環境用Dockerを作ってみた


# 逃げてはいなかった・・・はず
に、にげてねぇし（震え
触る必要なかっただけだもんね（目逸らし

この状態とおさらばするために環境作って簡単に触ってみるところまでやってみた履歴

# 環境のインストール(Mac)
https://docs.docker.com/docker-for-mac/install/
アプリあるでごぜーます。

インストールすると上部にクジラアイコンが出現するでごぜーます
![スクリーンショット 2017-05-16 14.02.22.png](https://qiita-image-store.s3.amazonaws.com/0/52141/688dc520-f5af-0fe8-30c9-d043a140f99c.png "スクリーンショット 2017-05-16 14.02.22.png")

# dockerコマンド

http://docs.docker.jp/engine/reference/commandline/index.html

リファレンスを引きながら頑張る。

# 使ってみる
centosを使ってみる。macのターミナルで実行

```:リファレンスより
使い方: docker pull [オプション] 名前[:タグ] | [レジストリ・ホスト[:レジストリ・ポート]/]名前[:タグ]

レジストリからイメージやリポジトリを取得

  -a, --all-tags=false          リポジトリでタグ付けられた全てのイメージをダウンロード
  --disable-content-trust=true  イメージの認証をスキップ
  --help                        使い方の表示
```

```bash:コマンド
docker pull centos:latest
```

# 確認してみる

```:リファレンスより
使い方: docker images [オプション] [リポジトリ[:タグ]]

イメージを一覧表示します。

  -a, --all=false      全てのイメージを表示（デフォルトは中間コンテナを非表示）
  --digests=false      digest 値を表示
  -f, --filter=[]      指定した状況に応じて出力を整形：
                       - dangling=(true|false)
                       - label=<キー> or label=<キー>=<値>
                       - before=(<イメージ名>[:タグ]|<image-id>|<image@digest>)
                       - since=(<イメージ名>[:タグ]|<image-id>|<image@digest>)
  --help               使い方の表示
  --no-trunc=false     トランケート（truncate）を出力しない
  -q, --quiet=false    整数値の ID のみ表示
```

```bash:コマンド
docker images
```

```bash:結果
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              7894d0c25896        4 days ago          193 MB
```

おお！なんか来た

# ログインしてみる

```:リファレンス
http://docs.docker.jp/engine/reference/commandline/run.html
```

オプション多すぎぃ・・・

とりあえず
> -t, --tty                     疑似ターミナル (pseudo-TTY) を割り当て
-i, --interactive             コンテナの STDIN にアタッチ
--rm                          コンテナ終了時、自動的に削除
--name=""                     コンテナに名前を割り当て

```bash:コマンド
docker run --rm --name test -it centos:latest /bin/bash
```

これでdockerの方に入れる

抜ける

```bash:コマンド
exit
```

# 他に使いそうなオプション

>   -v, --volume=[ホスト側ソース:]コンテナ側送信先[:<オプション>]
                                ボリュームを拘束マウント。カンマ区切りで指定
                                `オプション` は [rw|ro], [z|Z], [[r]shared|[r]slave|[r]private], [nocopy]
                                'ホスト側ソース' は絶対パスまたは名前の値
                             
> -p, --publish=[]              コンテナのポートをホスト側に公開
> -d, --detach                  コンテナをバックグラウンドで実行し、コンテナ ID を表示


# dockerfile
構築手順書のテキストみたいなもの

[効率的に安全な Dockerfile を作るには](http://qiita.com/pottava/items/452bf80e334bc1fee69a)この記事を参考に作業しました。

```bash:Dockerfile
FROM centos:latest
MAINTAINER Yuki_BB3
LABEL version="1.0"

RUN set -xv 																				&& \
	curl -s "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"							&& \
	python get-pip.py 																		&& \
	pip install awscli --ignore-installed six 												&& \
	curl -s -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | sh	&& \
	source ~/.nvm/nvm.sh																	&& \
	nvm install v6.10.3 																	&& \
	npm install -g jsonlint 																&& \
	npm install -g jq 																		
```

Docker作業用ディレクトリに上記ファイルを作成して

```bash:コマンド
docker build -t awscli_image .
```

標準出力ｶﾞｰｰｰｰっと出てくるので終わるまで待つ

```bash:コマンド
docker images
```

```:結果
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
awscli_image        latest              123f567f1a4f        About an hour ago   317 MB
```

おお、でけた。

```bash:コマンド
docker run -it awscli_image /bin/bash
```

```bash:コマンド
# aws configure
AWS Access Key ID [None]: hoge
AWS Secret Access Key [None]: fuga
Default region name [None]: ap-northeast-1
Default output format [None]: json

# aws s3 ls
2017-02-22 02:48:12 hogehoge
```

おおー、うごいた!

# とりあえず恐怖感は払拭できたので使っていく