dockerやPodman等のコンテナ実行環境を削除したいとき。
dockerやpodmanのネットワークが残っていて、docker network rmコマンドやpodman network rmコマンドで削除できない場合があります。「事前に定義されたネットワークのため、削除できません」ふむ。
もちろん、すべてのコンテナ・ポッド・イメージ・ボリュームは削除済みです。container ls –allコマンドで停止しているコンテナも削除してあります。
ネットワークが残っている状態で、dockerやpodman本体を削除しても、ネットワークだけ残ってしまい、困った状態になります。何か不要なものが残っていて、気持ちが悪いと言いますか。
削除手順を記録しておこうと思います。
docker0、cni-podman1、virbr0ネットワーク削除手順
ずばり。
# デバイスを確認
nmcli d
# デバイス削除
nmcli d delete <デバイス名>
systemdのNetworkManagerから、docker0、cni-podman1、virbr0デバイスを削除しました。
ネットワークデバイスが残っている理由は、アプリケーションからは、systemdのNetworkManagerが持つリソースを操作できない、削除できないことが理由のようです。
このため、nmcliコマンドで直接、systemdのリソースを操作することで削除が可能、という状況のようです。
背景にあるのはセキュリティ。アプリケーションとシステムを完全に分離することで、不正なアプリケーションによる不正な操作を防ぐ目的があるように思えます。
というわけで、システム側の操作を適切に行えば、不要なリソースが削除できることがわかりました。
不要なネットワークデバイスでお困りでしたら、そのような考え方で対処してみて下さい!