2016-05-13
■ [docker] docker daemonが起動しなくなった
VMWare Fusion上のUbuntuでapt upgradeして再起動したらdocker daemonが起動しなくなっていた。
/var/log/upstart/docker.log:
/var/run/docker.sock is up
time="2016-05-12T21:17:24.566373150+09:00" level=info msg="New containerd process, pid: 2201\n"
time="2016-05-12T21:17:25.748356152+09:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed"
time="2016-05-12T21:17:25.748444077+09:00" level=fatal msg="Error starting daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed"
エラーメッセージで検索すると https://thinkit.co.jp/story/2015/05/26/6037?page=0%2C1 という記事を見つけた。/var/log/messagesに何か出ることがあるらしい?
dmesgコマンドを叩くと以下のような行がある。
[ 27.625632] device-mapper: table: 252:1: thin-pool: unknown target type
[ 27.625636] device-mapper: ioctl: error adding target to table
sudo dmsetup targetsすると確かにthin-poolというものはない。
なんかおかしいな、と思ってVMWareToolsを再ビルドしようとしたところ、kernel headerが期待したパスに見つからないことが分かった。あ、これ、もしかして、心当たりがあるかも…、
原因
間違ってカーネル関係のパッケージを削除したのが原因だった。3.13.0-85と-86が入っていたのでそれらが最新だと思ったのだけど、uname -aを見たら-37だった。何故だろうか…。 ともかく以下のようにして入れなおし、再起動したら直った。
$ sudo apt install linux-headers-3.13.0-37{,-generic} linux-image-{,extra-}3.13.0-37-generic