読者です 読者をやめる 読者になる 読者になる

カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

DockerをUbuntu 12.04、CoreOS、boot2dockerで実運用した時の正直な感想

Development Diary

概要: ProductionにDocker入れるならUbuntu 12.04が良いと僕は思う。


今日は珍しく早起きしたんで、洗濯物を母の代わりに干しながら、今日書くブログネタを考えていたんですが、そのときに、

Dockerを運用する際のOSについて書けば注目集まるんじゃね?

とか思いついたので、今日はその辺り正直に書きたいと思います。

DockerをUbuntu 12.04、CoreOS、boot2dockerで実運用した時の感想

1. 初めてのDocker体験: CoreOS

まず、最初にDockerを使ったのは、確か、

だったような覚えがあるんですが、正直、CoreOSは、

  • 常にDockerの最新版を追いかけるのには、まだ時期尚早

というのが現実ではないかと思います。

というのも、CoreOSそのものコンセプトに問題があるとか、あるいは開発体制がアレとかそういう類いの問題ではなく、単に、

  • Now on Developemnt !

というのが一番大きな理由です。

要するに、枯れてないよってコトですね。

で、僕はCoreOSについては、

  • 自宅でのDocker用開発環境
  • 自宅サーバでのDeploy先環境

として使ってた時も有ったんですが、Dockerのバグを踏んづけたけど、CoreOSのDockerのVersionが上げられなくてうごごごg……って成ったことが度々あったし、Docker自体もまだ枯れてなくて、結構頻繁に更新されているっぽいので、その辺りもまだ実験的に使う以外には向いてないのかなぁ、というのが正直な感想です。

まあでもCoreOSのコンセプトはすごい魅力的ですし、また関連コンポーネントも結構面白そうなモノが多い (etcd とか)ので、要注目なProductだとは思います。

2. 安定を求めて: Ubuntu 12.04

で、次。今の自宅サーバ(Mac mini late 2012)で、Dockerを実運用するのに使っているのが、

の正確にはServer版です。

で、僕はUbuntu 12.04でDocker用のVMを作るのに、手作業で作るのは面倒というかアレだと思ったので、VagrantやPackerの作者の@mitchellhさんの、

を使って、VMware FusionにVMを作ってDockerを運用しています。

で、基本的には

  • Ubuntu 12.04 + Docker

という組み合わせはかなり安定していて、運用面でも特に問題なく、安定して運用できるのですが、いかんせん僕のMac mini late 2012が時々おかしくなるので、その辺りがちょっとビミョいです、はい。

まあでも、実環境でDockerを運用するのであれば、

  • Ubuntu 12.04

はオススメできるのではないかと思います。

3. コンパクトな開発環境が欲しかった: boot2docker

そして最後、boot2docker。

は、超簡単に説明すると、

Dockerを動かすための環境しか入ってないTiny Core Linux

で、基本的にはISOとかからbootして使うんですが、ガチがコンパクトなので、Macbook Air mid 2011等の容量が厳しめな環境でも、余裕で使うことができます。

が、容量的にはコンパクトでも、メモリ的にはあんまりコンパクトではなく、前に128MBだけしかメモリ割り当てしなかったら、Kernel Panicしてbootしませんでした。なので、メモリはあまりケチれません。

あと、boot2dockerは、作者の@steeveさんが公式にBootable ISO Imagesを公開していて、それを使えば一発でboot2dockerが使えますが、実は、

  • boot2dockerはDocker環境があれば自分でカスタマイズできる!

という特長があります。

ただし、boot2dockerはTiny Core Linuxという、ちょっと独特なLinuxを使ってるので、Tiny Coreの知識がないと、微妙にカスタマイズしづらいという難点もあります。っていうか僕もTiny Coreは使ったことないからカスタマイズできないれす(^q^)

それとまあboot2dockerのBootable ISO image作るのに、Docker環境が必要という、鶏卵問題があるっちゃぁあるので、その辺りもちょっと微妙かもしれません。

あと僕は boot2dockerは開発環境としてしか使っていないんですが、もう少し仕組みやカスタマイズ方法が分かってきたら、自宅鯖での実運用もできるかな? とか思ってます。あとつい5日前に最新版がでたっぽいですしね。

ということで、以上が上記三つのOSでDockerを使った際の正直な感想でした

僕としては、もし業務とかで使うのであれば、

  1. とにかく面倒なことはしたくない → Ubuntu 12.04
  2. とにかくカリカリにチューンしたい → boot2docker (自前カスタマイズ)

って感じかなぁと思います。

あと、

  • CoreOS

も機能が充実してきて枯れてきてくれたら、選択肢の一つに十分入って来れそうな感じですが、いかんせんやっぱりまだ開発途上なので、実務に突っ込むにはリスクがあるかな、と思います。

まあ一番簡単に使えるのは、さっきもリンクを掲載した、

あたりかなぁと思うので、面倒なコトしたくないわ、って人は、上記のPacker用テンプレートを使って、VM作るとめんどくさくなくていい感じだと思います。


ということで本日の記事は以上です。

まあ僕はUbuntu 12.04かboot2dockerがオススメかな、とは思いますが、CentOSとか他のLinux OSでもdockerは動くので、各自最適な環境を見つけられたら、それはそれで良いんじゃないかなと思います。

ということで本日の記事を終わります。お疲れさまでした。

P.S.

そういやさっき時計みたら、時間が30分ぐらい立ってました。今ちょうど午前9時です。はい。結構記事書くのに時間かかってるんですね。僕って。