ようへいの日々精進XP

よかろうもん

(超メモ)Docker 1.9 にアップデート後、docker run したら Could not find container for entity id xxxxxxxxxx というエラーが出てコンテナが起動しなくなった時の対処

tl;dr

満を持して Docker 1.9 にアップデートした。

$ docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

アップデートした後に今まで動かしていたコンテナを起動しようとすると...

$ docker run --name=dynamo -p 7777:7777 -d dynamo-local -inMemory -port 7777
Error response from daemon: Could not find container for entity id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

オーマイガ。(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx はコンテナ ID っぽい)

過去に dynamo という名前でコンテナを動かしていたこともあり docker rm -f dynamo してみると...

$ docker rm -f dynamo
Error response from daemon: no such id: dynamo
Error: failed to remove containers: [dynamo]

ありゃ、どうするばい。


解決策

参考

github.com

ひとまずの解決策として、あくまでも参考まで。

/var/lib/docker/containers/ 以下と /var/lib/docker/linkgraph.db を削除

$ sudo su -
# rm -f /var/lib/docker/containers/*
$ sudo rm -f /var/lib/docker/linkgraph.db

とりあえず落としていたコンテナをすぐに起動したかったので苦肉の策っぽい感じだけどひとまず解決。但し、起動済みのコンテナ(--rm オプション無しで起動したコンテナ)を削除してしまうので、後から docker start したいようなコンテナががある場合には注意が必要!


以上

本件、どうやらバグのようです。

hey guys, we already had multiple confirmation of this bug, please avoid repeating that you got this bug and you fixed it with the suggested workaround.