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 を実運用するのに使っているのが、
Ubuntu 12.04.3 LTS (Precise Pangolin)
の正確には Server 版です。
で、僕は Ubuntu 12.04 で Docker 用の VM を作るのに、手作業で作るのは面倒というかアレだと思ったので、Vagrant や Packer の作者の @mitchellh さんの、
mitchellh/packer-ubuntu-12.04-docker
を使って、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 を使った際の正直な感想でした
僕としては、もし業務とかで使うのであれば、
って感じかなぁと思います。
あと、
- CoreOS
も機能が充実してきて枯れてきてくれたら、選択肢の一つに十分入って来れそうな感じですが、いかんせんやっぱりまだ開発途上なので、実務に突っ込むにはリスクがあるかな、と思います。
まあ一番簡単に使えるのは、さっきもリンクを掲載した、
mitchellh/packer-ubuntu-12.04-docker
あたりかなぁと思うので、面倒なコトしたくないわ、って人は、上記の Packer 用テンプレートを使って、VM 作るとめんどくさくなくていい感じだと思います。
ということで本日の記事は以上です。
まあ僕は Ubuntu 12.04 か boot2docker がオススメかな、とは思いますが、CentOS とか他の Linux OS でも docker は動くので、各自最適な環境を見つけられたら、それはそれで良いんじゃないかなと思います。
ということで本日の記事を終わります。お疲れさまでした。
P.S.
そういやさっき時計みたら、時間が 30 分ぐらい立ってました。今ちょうど午前 9 時です。はい。結構記事書くのに時間かかってるんですね。僕って。