2013年から2014年頃、空前のDocker大ブーム期に書かれたブログ記事には、よく「DockerはAUFSを使って差分イメージを実現している」と書かれてあります。
しかし最近のDockerではAUFSは使われていないのでもう忘れたほうがよいでしょう。(一応選択しようと思えばできます)
Dockerとストレージドライバの話
Docker 0.7から、ストレージ層がプラガブルになって、ストレージドライバを自由に選択できるようになりました。
最新版のDocker(v1.5)では、 下記の5つを選択できるようになっています。
- aufs
- btrfs
- devicemapper
- overlay
- vfs
つまりaufsは選択肢のひとつにすぎないということです。
実際にどのストレージが使われているのか?
選択可能とは言え、大半のひとはデフォルトのまま使っていると思います。
ディストリビューションごとに、デフォルトのストレージドライバを調べてみました。
調査方法は、Dockerを標準的な方法でインストールしてdocker info
を叩いた結果を見ました。
(2015/4/1現在)
Distribution | Storage Driver |
---|---|
CentOS 7 | devicemapper |
Ubuntu 14.04 | devicemapper |
CoreOS | overlay |
OSX(boot2docker) | aufs |
というわけで、AUFSが使われているのはboot2dockerだけでした。
AUFSが使われなくなった理由としては、
Unfortunately, AUFS is not part of the standard linux kernel and it’s unclear when it will be merged.
AUFSはLinux本体に含まれていないし、将来そうなる可能性も不明だから、だそうです。