CentOS6.5でdockerを試す

（5/12追記ここから）
チェックしてるニュースサイトに以下のニュースが上がってきたので追記。たのしみですねー。
[Docker 0.11が初めての正式版候補としてリリース。来月には1.0が登場か？ － Publickey](http://www.publickey1.jp/blog/14/docker_01110.html)
[Docker 現状認識確認会をした - stfuawsc](http://blog.linknode.net/article/1399856439)
（5/12追記ここまで）

dockerを試してみた

- イメージ起動時にコマンドを実行することが可能。
- 簡単に作って壊せるので(KVMなどの)ハイパーバイザー型の仮想化よりも低コスト。
- そもそもハイパーバイザー型とコンテナ型の仮想化では用途が異なる
- ホストの領域をマウント(bind)できる。
- ホストのポートにbindできる。
- ハイパーバイザー型がOSレベルの仮想化でコンテナ型はアプリケーションレベル＋αの仮想化
- IPも振れる。
- ホストの環境を汚したくないとか、切り分けたいとかに使える。
- 実環境に投入するかどうかはともかく実験や、セットアップのテストには使える。
- そのセットアップ手順もdockerfileに書くことで使い回しが可能
- ファイルシステムレベルの差分を取っているらしい
- cgroupによるリソースの制限が可能
- docker公式で公開されている色々なイメージで遊べる　[Docker Index](https://index.docker.io/)
- ただし時間帯によってはDL速度が出ない（DLできない）ことも。
- アプリケーション環境がセットアップされた状態を丸ごとDLして使えるのでちょっと試すにはかなり便利

```bash
# epelに入っている
$ cat /etc/yum.repos.d/epel.repo
$ sudo yum install docker-io

# サービスを起動する(chkconfigはonでインストールされる)
# これを忘れると /var/run/docker.sock: no such file or directory
$ sudo service docker start

# 一般ユーザーで使えるようにする
# dockerグループに所属させる方法 man docketの先頭に書いてある
# 他にも
# /var/run/docker.sockの権限を変更する方法や
# /etc/sysconfig/dockerで起動オプションを変更する方法もある
# これを忘れると /var/run/docker.sock: permission denied
$ sudo usermod -a -G docker ymko

# 一度ログアウトしてから入る
$ docker -v
Docker version 0.9.0, build 2b3fdf2/0.9.0
$ docker info
Containers: 0
Images: 0
Driver: devicemapper
 Pool Name: docker-252:3-2229004-pool
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 291.5 Mb
 Data Space Total: 102400.0 Mb
 Metadata Space Used: 0.7 Mb
 Metadata Space Total: 2048.0 Mb
```

```bash
# 時間帯によってはアクセスが集中していて遅いです。
# そんなときはimageを自作した方が早いかも
$ docker pull centos
Pulling repository centos
0b443ba03958: Download complete
539c0211cd76: Download complete
511136ea3c5a: Download complete
7064731afe90: Download complete
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              centos6             0b443ba03958        3 weeks ago         297.6 MB
centos              latest              0b443ba03958        3 weeks ago         297.6 MB
centos              6.4                 539c0211cd76        13 months ago       300.6 MB
# ログイン
$ docker run -i -t centos /bin/bash
```

- コミットでimage確定

とりあえずこのへんでタイムリミット

```bash
# コンテナ削除
$ docker rm `docker ps -a -q`
# イメージ削除
$ docker rmi [IMAGE]
```


# 参考
- [これから始める「DockerでかんたんLAMP環境 for CentOS」 - さくらのナレッジ](http://knowledge.sakura.ad.jp/tech/1811/)
- [cloudpackブログ: 一般ユーザでdockerコマンド利用時に dial unix /var/run/docker.sock: permission denied](http://blog.cloudpack.jp/2014/05/server-news-docker-socket-permission.html)
- [CentOS6.x - Docker 0.9.0 for CentOS6.5 - Qiita](http://qiita.com/mykysyk@github/items/d19d07fc5af70ecccdce)
- [Docker 虎の巻](https://gist.github.com/tcnksm/7700047)
- [すぐにDockerを試したい人のための基礎コマンド | SOTA](http://deeeet.com/writing/2013/12/08/docker-cheat/)
- [docker用にCentOS 6.5のbase imageを自作する - Qiita](http://qiita.com/hnakamur/items/8e3136488fcfe763802c)
- [docker用にCentOS 6.5のbase imageを自作する - Qiita](http://qiita.com/hnakamur/items/8e3136488fcfe763802c)
- [Getting Started with docker](http://coreos.com/docs/launching-containers/building/getting-started-with-docker/)
- [docker - CONTAINERとIMAGEをまとめて削除 - Qiita](http://qiita.com/masayuki_oguni/items/f3f180454343566d8d3a)