トップ «前の日記(2016-05-06) 最新 次の日記(2016-05-16)» 編集

Route 477



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