2019年4月28日日曜日

docker rm で force 削除した場合はネットワークから切断しなければならない

概要

docker rm --force を使った場合本来の削除プロセスではなくなるため手動でネットワークからの切断をしなければいけません

環境

  • Ubuntu 16.04 LTS
  • docker 18.09.2

状況

docker stop でも docker kill でもコンテナが停止しない場合に rm --force を使います
その後コンテナを再作成して docker start しようとすると以下のようなエラーが発生します

Error response from daemon: endpoint with name C1 already exists in network bridge
Error: failed to start containers: C1

エラー文の通り force 削除したコンテナをネットワークから削除する必要があります

対応方法

  • docker network inspect bridge

でぶら下がっているコンテナを確認します
Containers の項目の中に force 削除したコンテナがいるはずです

Containers": {                                                                                                         
   "2c5472b7827e7bb4b68d53551dd851d10ac93b5701bb7f5f303d9dad2d4eb294": {
       "Name": "C1",
       "EndpointID": "406a9e1968ff0e11d2c384f16220fa87b66e24362f2e9ab6cf5cafec777e058f",
       "MacAddress": "02:42:ac:11:00:06",
       "IPv4Address": "172.17.0.6/16",
       "IPv6Address": ""
   }
}

コンテナ ID (上記だと 2c5472b7827e7bb4b68d53551dd851d10ac93b5701bb7f5f303d9dad2d4eb2 ) を指定して削除しましょう
またオプションで --force を指定します

  • docker network disconnect --force bridge 2c5472b7827e7bb4b68d53551dd851d10ac93b5701bb7f5f303d9dad2d4eb2

もしコンテナ ID で削除できない場合はコンテナ名や EndpointID を指定してみましょう
自分は (理由は不明ですが) コンテナ名をしたら disconnect できる場合がありました
これでコンテナを作り直してスタートすれば OK です

  • docker create --name C1 C1_image
  • docker start C1

参考サイト

0 件のコメント:

コメントを投稿