概要
- Dockerのコンテナを終了させようとした際に、
Error response from daemon: error while removing network: network XXXXX id XXXXX has active endpoints
というエラーが出て、docker networkの削除ができなかったのでその時の対処法を書き残しておく。
参考
Docker-composeのコンテナ実行中にファイルを書き換えてしまった場合
コンテナ実行中なのにも関わらず、ファイルを書き換えてしまいdocker-compose down
をすると今回のエラーが発生することがある。その際には以下のコマンドを実行する。
docker-compose down --remove-orphans
--remove-orphans
というオプションを付けることで、docker-composeによって作成されたコンテナ・ネットワークを自動で探して掃除してくれる。
上記で問題が解決しなかった場合は、下記手順を行ってみる。
コンテナの停止
docker stop [コンテナ名]
コンテナの削除
docker rm [コンテナID]
docker rm --force [コンテナID]
※うまくいかない場合は--force
オプションを付けてみる
ネットワーク削除
docker network rm [ネットワーク名]
※これには--force
のオプションがない
コンテナ接続情報をデタッチ
上記でネットワーク削除ができない場合、コンテナの接続情報が残ってしまっているのでそれを解除。
ネットワークの情報を取得するために下記コマンドを実行。(コンテナのIPアドレスを知りたいときになどもこのコマンドは便利なので覚えておくべき)
docker network inspect [コンテナ名]
以下のような情報が現れる
[
{
"Name": "test",
"Id": "0f60b7b874f667e2c29b30f0d6867cd9e5de7a7f2cc401274aa9c5b3310f2ab0",
"Created": "2022-12-05T18:22:24.028784023+09:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.25.0.0/16",
"Gateway": "172.25.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"af1f2d64b630a7642a96e9c52e35c9ee598826629aef6fc3a2c3876d937016de": {
"Name": "test",
"EndpointID": "607cd7bbaed54c0b301e0e8fe5e1a3dc1be4e62cef0471010485e9fcb978a91e",
"MacAddress": "02:42:ac:19:00:02",
"IPv4Address": "172.25.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "test",
"com.docker.compose.version": "2.3.3"
}
}
]
このネットワークのコンテナ接続情報をデタッチするのに下記コマンドを実行。
docker network disconnect [ネットワーク名] [コンテナ名]
docker network disconnect --force [ネットワーク名] [コンテナ名]
※うまくいかない場合は--force
オプションを付けてみる
再びネットワーク削除
docker network rm [ネットワーク名]
最後に
ここまでやれば削除できるはず...