アプリ側の人間なんでインフラいじりは本業ではないのだけど、だからこそその辺の煩わしさを減らして気軽に色々試したいなーということでDocker勉強始めてみた。
Docker導入
インストール
EPELより
# yum install -y docker-io
起動
# service docker start
バージョン確認
# docker version Client version: 1.0.0 Client API version: 1.12 Go version (client): go1.2.2 Git commit (client): 63fe64c/1.0.0 Server version: 1.0.0 Server API version: 1.12 Go version (server): go1.2.2 Git commit (server): 63fe64c/1.0.0
自動起動設定
# chkconfig docker on
使ってみる
Hello world
とりあえず仮想CentOS上でechoしてみる。
# docker run centos echo "Hello world" Unable to find image 'centos' locally Pulling repository centos b157b77b1a65: Download complete 511136ea3c5a: Download complete 34e94e67e63a: Download complete Hello world
最初はイメージをダウンロードしてきた後にコマンドが実行される。
結構サクッと。
当たり前だけど二度目はダウンロードなし。
# docker run centos echo "Hello world" Hello world
コンテナを起動してみる
# docker run -i -t centos /bin/bash bash-4.2#
オプションはインタラクティブ・ターミナルの意。
こんな感じでコンテナ内に入れる。
ここで諸々の操作をして環境を作る。
ちなみにexitコマンドで抜けられる。
コンテナ確認
docker ps -aで起動していたコンテナの確認ができる。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67741966c87 centos:latest /bin/bash 2 minutes ago Exited (0) About a minute ago tender_sammet
ちなみに消すには
# docker rm [コンテナID]
イメージの保存
環境作ったらイメージを保存。
# docker commit 3fd1c5b1e0a4 blue1st/test 933754bdc3d046930813b8f42ec36b8de3a6079fcedb5e1129cf47361652f354
IDとイメージ名を指定する。
イメージ名は「ユーザ名/〜」の形が一般的らしい。
imagesで確認できる。
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE blue1st/test latest 933754bdc3d0 28 seconds ago 243.7 MB centos latest b157b77b1a65 4 days ago 243.7 MB
ほいでもって、runでもって起動できる
# docker run -i -t blue1st/test bash-4.2#
ちなみにイメージ削除は
# docker rmi [イメージID]
バックグランド実行とか
現実には何がしかのコンテナで何かしらのミドルウェアなりアプリなりを動かし、ポートフォワーディングでホストから接続する形になると思う。
この場合は
# docker run -p [ホストのポート]:[コンテナのポート] -d [リポジトリ]
みたいな形で起動する。
ちなみに止める時は
# docker kill [コンテナID]
その他
実用上は、必要な操作等を記述したDockerfileを使って自動でコンテナの環境を作成してそれを使っていくらしい。
こっちの方はおいおい勉強していきたい。
ちょっと前まではVagrant+Chefで環境つくって云々と考えていたけど、何気に勉強が必要な要素多いしサーバリソース食うしで実のところやる気がダダ下がってったんだけど、こっちは割とシンプルでサクッとできそうなのが好感触。

Docker入門 Immutable Infrastructureを実現する
- 作者: 松原豊,米林正明
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/25
- メディア: Kindle版
- この商品を含むブログ (5件) を見る