そろそろimmutable infra structure的な所も知見を貯めておかないと行けないなのでやってみた。
巷でもコンテナ♪コンテナ♪と声が聞こえるし。
(1) docker使えるVPSを契約
現時点で、CoreOSやCentOS7を使ってのdockerの使用実績があるのはSakuraが一番っぽい。
なんと2週間お試しがあるので、とりあえずはタダ。要クレジットカードだが。☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ
(2) CoreOSをぶっこむ。
参考サイト さくらのVPSにCoreOSをインストールしてDocker専用機にする - Qiita
かんたんにまとめると。
- CoreOSのisoイメージをマウントして起動
- coreos-installっていうコマンドでOSをインストールするイメージ。
インストール時に、ymlで記述したネットワーク設定とかを指定しておくと、インストール後のOSのネットワーク設定を指定できる。
※そうしておかないと、ログインも出来ない文鎮CoreOSが出来る。
しかし・・・・。 CoreOSのインストールや、SSH接続までは順調だったが、dockerコマンドで試しにwordpress立ち上げようとしたら、SSH接続が死んだ。
そして、何も出来なくなった・・・。再起動しても駄目・・・。リモートコンソールも駄目・・・。完全なる文鎮。
というわけで、CoreOSはまだまだ不安定という素晴らしい知見を得た。 そもそも、試したいのはdockerであって、CoreOSじゃないし。CoreOSに拘って時間を浪費するなかれという方針で決定。
(3) CentOS7をぶっこむ。
sakuraでは、カスタムインストールっていう項目から出来ました。 でも結構時間かかる(30分くらい)から気をつけて。
(4) dockerインストール
参考サイト DockerをCentOS 7にインストールする方法 - Life with open mind
CentOSは仕事で慣れているので、スムーズ。 dockerのインストールもepelリポジトリから、ワンタッチyum。
(5) dockerと戯れる。
やっと本題。だけど、イマイチ戯れ方が分からない・・・。
サービス単位でdocker立ち上げても、ピンと来ないので、centosのイメージを使って、今までのVM的に使ってみる。
まずは、dockerのcentosのイメージをゲッツして、runだ!
1 | $ docker pull centos |
上のコマンドの意味は、centos7の仮想イメージを立ち上げて、catを実行しています。 実行自体は、一瞬で終わるので、いかにコンテナ仮想化が軽量であるのかってのが、よく分かる。
次に、centos7を起動して、bashを実行。itオプションで標準入出力をhostに繋げる。
1 | $ docker run -it centos:centos7 /bin/bash |
おお、centos7からcentos7を立ち上げて繋がった!Σd(゚∀゚d)イカス!
次に、立ち上げたコンテナ内でファイルを作ってみて、もう一度立ち上げて見てみよう。
1 | $ docker run -it centos:centos7 /bin/bash |
な、ない(;・∀・) 作ったはずのファイルが無い!
その通り、centos7というベースイメージで立ち上げているので、ベースイメージに変更がない限りは、毎回同じ状態で立ち上がる!
では、次はファイルを作った状態をベースイメージに変更して立ち上げてみる。
dockerでcentos7を立ち上げて適当なファイルを作る。
1 | $ docker run -it centos:centos7 /bin/bash |
dockerのプロセス一覧を表示。(aオプションで終了したプロセスも表示) 直近のプロセスのハッシュ名で、commit
1 | $ docker ps -a |
commitしたイメージ名で立ち上げ直して、ファイルがあるかどうかチェック
1 | $ docker run -it centos:test /bin/bash |
ある!ファイルがある! ベースのOSイメージに変更を加える手順はこれにて理解できました。 まあ、VM使っている時と似たような感じですね。起動速度は超爆速ですがね!!
本日のまとめ
- dockerと戯れるならcentos7がお勧め。CoreOSはまだ不安定っぽい。
- 有名なディストリビューションであれば、officialなベースイメージが落っこちているのでdocker pullでゲット
- ベースイメージを発展させて行くには、commitして保存する必要がある。
次はベースイメージから、開発用サーバのベースを作ってみよう。