El Capitan + Docker 1.12.0-rc4-beta20 で試しています。
とはいえpublic betaな Mac Dockerは今ガンガンバージョンがあがっているのですぐ変わります。
Mac版Dockerのpublic betaも出たことだし、いい加減重い腰をあげてちょっと触ってみるか。。と思ったらVagrantみたいに起動している間に腹筋でもするか〜...とか待つ必要もなく、あっという間にapache + PHP のコンテナが立ち上がって捨てるのも複製するのも簡単...ってレボリューション!、むしろこれは知らないとやばいレベルだ...と衝撃を受けたので本格的に入門してみようと思い立った記録です。続きます。たぶん。
QiitaやWEBの知識のみで始めてもいいんですが、完全に初心者なのである程度は体系だった知識を得た方がいいだろうということで、教科書はこれ。
WEB+DB PRESS Vol.86
ここでも買えます。
http://gihyo.jp/magazine/wdpress/archive/2015/vol86
ちょいと古いですがめっちゃ役にたちました。
とくに勉強になるなー、と初心者ゴコロにぐっときたポイントを抜粋
Dockerを活かすための原則
1コンテナ1プロセスを保つ
たとえばRailsとnginxを同一コンテナで動かしちゃうと、ngixだけリスタートしたい場合にコンテナごと再起動することができなくなってしまう。= 手順が複雑化してしまう。コンテナも複雑化しちゃう、とのこと。複雑なことは排除してなるべくシンプルに保つ。なるほど〜。
できる限り全てをコンテナで行う
逆にいえばホストOSには極力インストールしない。インストールしなければアップデートも必要なくなる。コンテナならば、新しいバージョンのものを用意してすぐ既存のコンテナとすぐ交換、ダメならすぐ戻せるけど、ホストOSとなればそうもいかない。だからそもそもインストールしない。なるほど〜
Dockerfileをそのまま使う
docker commit等で専用イメージを作っちゃうと、コンテナの作成手順が明示的ではなくなる。
そしてChefやPuppetよりDockerfileの記述の方がシンプル。本当かな?でも教科書が言うのだからきっとそうなのだろう。
よし当面方針としてDockerfileいっぽんに絞ろう。なによりインストールするものも、学習するものも、少なくて済むのは良いことだ。
ためしに nginxを起動してみる
本家を参考にしてみる。
Getting Started with Docker for Mac
https://docs.docker.com/docker-for-mac/
そのまんま試してみる。
- まずDocker for Macをダウンロードする
- インストールする
- ターミナルを起動してコマンド実行
docker run -d -p 80:80 --name webserver nginx
- localhostにアクセスする
- コンテナを終了させる
docker ps # CONTAINER IDを確認する
docker kill CONTAINER ID # 実際はCONTAINER IDの先頭3文字くらいでOK
なんて簡単なんだーーーーー!
以上
次回は、Dockerで apache + PHPを起動する の予定