_ [debian] Docker vs. Debian Kernel

いつの間にか Docker がエラー吐いて起動しなくなってた。

systemd[1]: Started Docker Application Container Engine.
docker[8239]: time="2015-09-28T15:56:28.540563828+09:00" 
level=error msg="[graphdriver] prior storage driver \"aufs\" failed: driver not supported"
docker[8239]: time="2015-09-28T15:56:28.540643889+09:00" 
level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"
systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: docker.service: Unit entered failed state.
systemd[1]: docker.service: Failed with result 'exit-code'.

調べてみると、Linux Kernel が aufs をサポートしなくなったため、Debian ではデフォルトで aufs を使う設定になっている Docker が起動しなくなってしまったようだ。> AuFSの代替としてのOverlayFS,unionfs-fuseを使うには, Docker = AUFSという図式はもう忘れたほうがいいかもしれない、あるいはDockerとストレージドライバの話 で BTS では overlay ストレージを使おうという話が出ているので(#799087)、早速その通りに /etc/default/docker を設定した。

# 2015/09/28 (#799087)
DOCKER_OPTS="-s overlay"
#

これで Docker は起動するようになった。ただ、コンテナを起動しようとすると、

Cannot start container 7f77abb51d4006cea783b8ef877289de1b76331ec95187287f8921f5af27b372: [8] System error: open /sys/fs/cgroup/cpu,cpuacct/init.scope/system.slice/docker-7f77abb51d4006cea783b8ef877289de1b76331ec95187287f8921f5af27b372.scope/cpu.shares: no such file or directory  

のようなエラーになってしまう(#798784, #798778)ので、さらに /etc/default/docker でオプションを追加。

# 2015/09/28 (#799087)
DOCKER_OPTS="-s overlay --exec-opt native.cgroupdriver=cgroupfs"
#

これで問題なく使えるようになったみたい。