Docker 使ってたらサーバがゴミ捨て場みたいになってた話 #immutableinfra

Immutable Infrastructure Conference #1 : ATND

でLTしてきた。

内容はきれいにゴミを捨てましょうという話以上のものは特にない。

背景の説明が少し雑だったので補足すると、Jenkins のジョブスクリプトで、git push する度に docker run していたら ゴミがどんどんたまっていったという感じ。 1 push あたり、アプリコンテナ、DBコンテナとか合わせて3コンテナぐらい起動してるから開発が活発だと、どんどんゴミがたまる。 さらに補足すると、Device mapper がらみのゴミは、aufs 使うとかなり解決できそうな感じはしてる。 (Device mapper だとブロックデバイスレベルでイメージ差分を表現するので、デバイス毎(差分)毎に mount が走るみたいな実装になってるけど、aufs だとファイルシステム単位で複数のディレクトリを束ねてマウントするみたいなことができるので、無駄なマウントが走りにくそう。多分。)

Disposable Infrastructureを特にコンテナ型仮想化技術を使って実現しようとする場合は、ゴミがどれくらいできるのかは結構重要な指標なんじゃないかと思う。 (ゴミがひどいから枯れてるハイパーバイザ型仮想化でやるという選択もあるかもしれない)

バッドノウハウがたまったり、Docker 自体が安定してきたので、最近は rpm/deb パッケージのビルドを Docker on Jenkins でやらせるようにして開発効率をあげたりしてる。

ともあれ、今現在ゴミ掃除にしか興味がなくなってる。

効率よくゴミ掃除するために、Docker の内部実装の勉強してて、そういう話をコンテナ型仮想化勉強会とかいうやつでしゃべるかもしれない。

第3回 コンテナ型仮想化の情報交換会@大阪 (コンテナ型VMや関連するカーネル等の技術が話題の勉強会) : ATND