Debian 9 stretch では aufs をデフォルトで利用できない

aufs は union mount を実現するファイルシステムの一つで, Docker が利用しているファイルシステムの一つです.  2017年にリリースされれる可能性が高い Debian 9 stretch では aufs が標準のカーネルでは利用できなくなり, DKMS を用いて導入する必要があります.

Debian 8 jessie 以前

Debian 8 jessie 以前では aufs が標準の linux-image にカーネルモジュールとして含まれており, 簡単に利用することができました. Docker も Debian でのデフォルトのストレージドライバとして aufs を利用していました.

aufs の Debian 9 stretch からの削除

Debian 9 stretch では aufs が linux-image の中に含まれなくなりました. このことは2014年12月の debian-kernel ML に記述されています.

The overlayfs union filesystem was included in Linux 3.18. I am
assuming that this will cover the needs of Debian live systems, so I’ve dropped aufs from the Debian packaging. Replacing aufs with overlayfs

Debian で aufs を利用できるようになっていたのは Live システム (Live CD など) のためで, Linux 3.18 から新しい union mount に対応したファイルシステムである overlayfs が利用できるようになったため, aufs は不要になったという経緯のようです.

Debian 9 stretch での aufs-dkms の提供

aufs が利用できなくなってからしばらく経った 2016年9月に, aufs-dkms というパッケージが unstable に追加され, 2016年10月から stretch/testing でも利用できるようになりました. DKMS は apt で簡単に導入できます.

sudo aptitude install aufs-dkms

Docker でのデフォルトストレージドライバ

aufs-dkms が導入されていない場合, Debian 9 stretch では Docker のデフォルトのストレージドライバが devicemapper に変わっています. aufs-dkms を導入した状態で Docker を導入すると, デフォルトで aufs のストレージドライバが利用されるようです.

aufs は Docker での使用において stable で production ready とされているため, 必要に応じで aufs-dkms をインストールして利用するのが良さそうです. なお, Debian をもとにしている Ubuntu では, 最新の Ubuntu 16.10 Yakkety Yak でも標準で aufs が利用できます.

参考

更新履歴

注: 記事中の Docker は Debian が配信しているパッケージ (docker.io) ではなく, Docker Inc. が配信しているパッケージのことを指しています.