カラクリスタ

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

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 時です。はい。結構記事書くのに時間かかってるんですね。僕って。

#感想 #開発運用 #Docker - #2014-01 #2014-01-19