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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0f9049739ac xxxx:dev-53e52afc20cc7c382eb221a9db742ccc618dd227 "/opt/docker/bin/i..." 3 minutes ago Up 3 minutes xxxx
ff76c3ef8849 xxxx:dev-8d5447725fd6b306ed91a5cd41e720b343e219dd "/opt/docker/bin/i..." 26 hours ago Up 26 hours ff76c3ef8849_xxxx
|
もう強制削除しかないので、-fをつけて強制削除してみました。
# docker rm -f <コンテナID>
docker rm -f b0f9049739ac
docker rm -f ff76c3ef8849
|
これで起動できるだろうと思って、「docker up -d」をうったら、今度更にエラーが出た。。。。(汗!!!)
$ docker-compose up -d
Creating xxxx ... error
ERROR: for xxxx Cannot start service xxxx: service endpoint with name xxxx already exists
|
古いコンテナのEndpointが残っています。
エンドポイントを調べたいですが、ネットワーク名は分からない、一覧を出してみます。
#docker network ls
NETWORK ID NAME DRIVER SCOPE
62d8386207b3 bridge bridge local
9d62029db27f host host local
8dd261f6a3cf 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」をうったら、無事に復旧できました。