dockerイメージを更新してリスタートしようとしたら、以下のエラーが発生しました。
ERROR: for xxx You cannot remove a running container b0f9049739ac6c4b178e673d25ac295a6291f3d957905148e98e35cce1571163. Stop the container before attempting removal or use -f |
どうやら前のdockerが残ってて停止できないようです。「docker ps」で確認したら、2つが動いてます。
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb0f9049739ac xxxx:dev-53e52afc20cc7c382eb221a9db742ccc618dd227 "/opt/docker/bin/i..." 3 minutes ago Up 3 minutes xxxxff76c3ef8849 xxxx:dev-8d5447725fd6b306ed91a5cd41e720b343e219dd "/opt/docker/bin/i..." 26 hours ago Up 26 hours ff76c3ef8849_xxxx |
もう強制削除しかないので、-fをつけて強制削除してみました。
# docker rm -f <コンテナID>docker rm -f b0f9049739acdocker rm -f ff76c3ef8849 |
これで起動できるだろうと思って、「docker up -d」をうったら、今度更にエラーが出た。。。。(汗!!!)
$ docker-compose up -dCreating xxxx ... errorERROR: for xxxx Cannot start service xxxx: service endpoint with name xxxx already exists |
古いコンテナのEndpointが残っています。
エンドポイントを調べたいですが、ネットワーク名は分からない、一覧を出してみます。
#docker network lsNETWORK ID NAME DRIVER SCOPE62d8386207b3 bridge bridge local9d62029db27f host host local8dd261f6a3cf none null local |
hostが一番あってそうなので、中身をチェックしてみることにしました。
$ docker network inspect host[ { "Name": "host", "Id": "9d62029db27ffc982d0bedaebe2ba6de3b84c1f57ecefbf74c6228a9f5436c86", "Created": "2018-05-21T19:36:40.649319874+09:00", "Scope": "local", "Driver": "host", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [] }, "Internal": false, "Attachable": false, "Containers": { "19c8189cbc9cc7411236bda85e3a085ea8a1018496b95f06a65e3139ab89361b": { "Name": "xxxx", "EndpointID": "b4f737bbf643f8da34f16718cfac0866754de3f72363cf9034a7d4f102ab9fa5", "MacAddress": "", "IPv4Address": "", "IPv6Address": "" }, (略) }, "Options": {}, "Labels": {} }] |
見事に古いコンテナを見つけました。削除します。
#docker network disconnect -f <network name> <container name>docker network disconnect -f host xxxx |
もう一回「docker up -d」をうったら、無事に復旧できました。