サーバの環境構築のテストはCoreOSのVMを使うといい感じだと思う
読了まで:約3分
概要: と
1. CoreOS と Docker に関する簡単な説明
1.1 Docker とは?
- Docker とは
:
- Docker 社(元 dotCloud 社)が
開発している オープンソースの 軽量 Linux コンテナ管理ソフトウェア - 技術的には
LXC と aufs を 組み合わせて、 Go 言語で 実装してる - VM と
違い、 Linux の 軽量コンテナを 使うので、 イメージの 作成と 破棄が 超簡単 - つまり、
使い捨て (CI Server とか DevOps の テストとか )には もって こいの 環境 - あと
最近 徐々に Docker エコシステムみたいなのが 出来てきてて、 Docker を 使う PaaS とかが 出始めてるもよう
1.2 CoreOS とは?
- CoreOS とは
:
- 分散サーバ環境の
構築を 目的と して 開発されている Linux - 中身と
しては Linux kernel + systemd + docker + docker を 使う ための utilities みたいな 感じ。 ちなみに Gentoo ベース - 基本的に
CoreOS は システムは Read-only。 ソフトウェア追加できない。 あと アップデートが 自動。 - それと
Alpha な間は Chaos Monkey に よってたまに 自動再起動したりする - あと
色々と 分散環境で 使いやすいように ソフトウェアが 追加されてる ものの、 開発中なのですべてが そろっている 訳ではない
2. 何故サーバ環境構築のテストを CoreOS(Docker)を使うと良いと思うか
- CoreOS の
システムは パッケージ追加とか 出来ないので、 システムを 汚す心配が ない - また、
開発環境は Docker に 押し込めるので、 いじり倒して おかしくなっても、 リセットするのが 簡単 - また
Dockerfile
を使えば、 コンテナの Bootstrap が 容易に でき、 いつでも 前と 同じ 環境を 容易できる - あと
VM と 違って コンテナなので、 起動とか ちょっぱや。 - _ ちなみに
CoreOS VM の 一瞬で起動 / 終了も ちょっぱや。 _ VM が 起動する
3. CoreOS を使う上で考慮すべき点
- まだ開発途上。
不具合が 有っても 泣かない - Chaos Monkey が
たまに 暴れる。 そして 再起動 - CoreOS を
基盤と した 大規模分散環境構築インフラ実装とかは まだ無い - 本番環境で
使うとか 行ったら 勇者扱いされる - 日本語の
ドキュメントなんて 無い。 あと English な Blog Entry とかも あんまりない
4. CoreOS と Docker を使った開発の流れと Tips
4.1 大体の流れ
- CoreOS の
VM を 立ち上げる - ローカルの
開発環境で Dockerfile
と関連ファイルを 用意する rsync
使ってCoreOS の VM に 開発ファイルを 流し込む - CoreOSVM に
ログインして $ docker build .
- 上手に
焼けました〜♪
4.2 開発中の Tips
- デーモンを
動かすときは フォアグランド動作させるべし
- そうじゃないと
Docker の コンテナが 終了する
- 動作テストとか
する ときは、 Bash
を実行して コンテナに ログインしてから 手動で デーモン起動とか すると デバッグが 楽 - あと
Docker の コンテナは Linux コマンド感覚で 使えたりする - 基本的に、
CoreOS VM に ファイル流し込む ときは、 rsync
使った 方が 柔軟に ファイルを 流し込める。 scp
は びみょい - ちなみに
CoreOS の Live ISO とか 作りたい方は、 こちらの 記事を どうぞ
5. というわけで以上
もう
僕は、
まあそういう
#FIXME