個人用途のVPSの管理をDockerベースにした

読了まで:約7分


概要: Digital Ocean の​ Ubuntu with Docker で​鯖管理するように​した


ここ最近、​自分が​課金してる​サーバとか​ Web サービスの​見直しを​してて、​ Monthly or Yearly の​支払い額が​減るように​調整してました。

で、​その​際に、zncとかlingr-ircdとかを​動かしていた、

と、​静的な​ファイルの​ホストを​していた、

の​運用を、​Digial Ocean 側に​集約して​ Gehirn の​ RS2 は​解約したんだけど、​ その​集約の​鯖構築の​際、​Web サーバとか​各種デーモンを、​ VPS 本体の​側で​動かさずに、

の​コンテナに​ Web サーバなり ZNC なりを​隔離して、​ サーバの​デーモン類を​構成したので、​ 今日は​その​辺り​書いてみようと​思います。

Digial Ocean の​構成

  1. OS: Docker with Ubuntu 13.04 x64
  2. Instance: 512MB/1CPU/20GB SSD/1TB transfer
  3. Region: San Francisco 1

Instance に​対して​行った​初期設定

  1. 運営用ローカルユーザーの​作成、​及び root アカウントの​無効化
  2. ローカルユーザーでsudoを​使えるように、/etc/sudoer.d/​へ設定を​追加
  3. sshdの​パスワード認証と​ PAM の​無効化、​及び Listen Port の​変更
  4. $ apt-get update && apt-get upgrade # セキュリティアップデート等
  5. $ apt-get install lxc-docker # 最近の​ Docker を​インストール

実際に​運用している​ Docker コンテナを​作る​際に​行った​コト

まず、​ローカルでの​ Dockerfile の​テストに​関しては、​ VMware Fusion 上に​自前で​インストールした、

を​使いました。

で、​あと​今回作った​ Dockerfile と、​その​関連ファイル一式は、​ Github 上の、​下記で​公開しています:


で、​まあ実際開発する​際に​やった​コトと​言えば、

  1. 自分の​作りたい​ Dockerfile と、​似たような​コトを​している​ Dockerfile を​探す
  2. 探し当てた Dockerfile を​参考に、​自分の​ Dockerfile を​書く
  3. Dockerfile を​書き終えたら、​CoreOS なりで​ Dockerfile の​テストを​行う
  4. 動作確認を​終えたら、​本番環境に​ deploy する

と​いう​感じです。

それで、​今回、

  1. Dockerfile 書いたり
  2. Docker の​コンテナを​ビルドしたり
  3. あるいは​コンテナをupstart​で管理したり
  4. git subtreeを​使ってみたり

を​した​関係で、​色々と​ノウハウと​いうか、​ 注意点とか​設定の​ポイントとかが​つかめたんですが、​ この​辺りに​関しては、​また​後日、

  • [[nyarla - Qiita [キータ]] http://qiita.com/nyarla]

に​まとめたいと​思ってます。

今​回こっそりと​リニューアルした​ Web サイト

で、​今回、​Gehirn で​ホストしていた​ Web サイトを​引っ越すに​辺り、

を​作り直したりしてました。

特に​統一言語メーカーに​関しては、​ ずっと​前に​サイトが​ダウンしたまま​放置して​たんですが、​ 今回、

  1. [[AngularJS — Superheroic JavaScript MVW Framework http://angularjs.org/]]
  2. [[shogo82148/TinySegmenterMaker https://github.com/shogo82148/TinySegmenterMaker]] で​作ったtinysegmenter.js
  3. [[Font Awesome, the iconic font designed for Bootstrap http://fontawesome.io/]]

辺りを​使って、​全面​書き直しとかしました。​ と​いうか​以前は​ Perl を​使って​動的に​結果を​返したりして​たんですが、​ 今回から​ Javascript だけで​完結する​静的ページに​なりました。​ なので、​サーバサイドが​不要に​なったと​いう。​ あと​ angular.js たのしいれす(^q^)

で、​ nyarla.net と​ Nyarlabo! の​ペラサイトも、​現状と​そぐわない​所とか、​ あるいは​表現が​微妙と​いう​所も​あったので、​ これらも​全面​書き直しとかしました。​ まあスタイルシートとかは​そのまま​流用してますけどね(><;)

今回 Docker を​使って​鯖構築した​感想

細かい​ノウハウに​関しては​さっきも​書いた​通り、​ あとで​ Qiita の​方に​まとめたいとおもってますが、​ Docker ​使って​鯖構築する​場合、

_人人人人人人人人人人人人人人人_ > コンテナの​作り直しが​超簡単 <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄

なのが​超便利で、​普通サーバの​設定ファイルとかを​直接いじってる​場合、​ ちょっと​ミスったので​やり直したい!​ と​思っても​色々と​面倒だったり、​ あるいは​複数の​デーモンが​絡まり​合って、​ スパゲッティーの​ように​サーバがゆで​上がった!​ とか​あるとおも​うんですが、​ Docker ​使うと​それが​コンテナに​隔離されるし、​ もし作った​コンテナが​おかしくなったら、​ Docker 経由で​コンテナを​捨てるだけで​環境の​リセットが​行えるので、​ 今回、​その​辺りが​非常に​楽でした。

ただ、​Docker 自体は​まだ​開発途上の​段階で、​さすがに​ Production Ready では​無いと​思うので、​本番環境を​ Docker で​構築するのは、​ まだ​ちょっと​リスキーと​いうか、​個人用途なら​お k だけど、​ 起業とかが​積極的に​本番環境に​ぶっ込む、と​いうは、​ まあチャレンジャー以外は​まだやめて​おいた​方が​いいんでね?​ とか​思います。

あと、​この​辺りの、​実務経験者に​よる​ Docker の​評価、​ と​いう​お話に​関しては、​ @miyagawa さんの​ PodCast、​ Rebuild の、

と​いう​エピソードで​話題に​なってたので、​ もしよかったら​そっちを​聴いてみるのも​一つの​手かと​思います。


と​いう​感じで、​今回は、​自分の​管理する​鯖を、

に​集約し、​その​環境構築の​際に、

を​使っみた、と​いう​お話でした。

まあ​今回得た​ノウハウは​とっと​ Qiita に​まとめろよふぁっきん!​ と​自分でも​思うのですが、​とりあえず​面倒なので​後回しです(><;)

でもまあ本当、​Docker 便利だし、​あと​ Docker の​テスト環境と​して、

も​本当に​便利なので、​まだ​一回も​使ってみた​事が​ない​人は、​ 一度​ Docker とか​ CoreOS とか​使ってみると​良いと​思います。

ちなみに​ CoreOS の​ Live ISO の​作り方は、

で、​紹介してるので、​CoreOS の​ Live ISO を​作る​際は​そっちを​参照して​もらえれば。

と​いう​ワケで、​今日の​記事は​こんな​感じで​終わりに​したいと​思います。​ お読みいただいて​ありがとう​ございました。

ノシ

#FIXME

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。