コンピュータを再起動してdocker.serviceを無効にすると、私のIP aの出力にbr1はありません。
ただし、dockerを起動するとbr1が表示されます。
ただし、sudo docker network inspect
関連ネットワークは表示されません。
Error response from daemon: cannot create network 33618cb1603a773a11d97750182fde9d8feb98c03a9882bb0c4539c3ea3fbe1d (br1): conflicts with network aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106 (br1): networks have same bridge name
sudo docker network inspect aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106
[]
Error response from daemon: network aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106 not found
では、このネットワークはどこにあり、どのように見つけることができますか?
そうしましたが、もうsudo docker network prune
3つの項目だけが残りました。しかし、br1はまだ生成されます。
ベストアンサー1
これはDockerネットワークの削除に失敗し、ブリッジレコードがデータベースに残っている場合に発生します。データベースの場所は/var/lib/docker/network/files/local-kv.db
(AlmaLinux)です。一般的なアドバイスはDockerを停止し、このデータベースを削除してコンテナを再構築することですが、これは大規模なインフラストラクチャに最適なソリューションではありません。この場合のより良い解決策は、データベースから残りのブリッジレコードを削除することです。これはBoltcliツールです(https://github.com/spacewander/boltcli)。
goがインストールされたと仮定してboltcliをインストールします。
go install github.com/spacewander/boltcli@latest
local-kv.dbをコピーし、Boltcliを使用して開きます。
boltcli /path_to_db_copy/local-kv.db
使用するバケットをリストします。
buckets *
バケットは「libnetwork」である可能性が高いです。競合するネットワーク(またはその一部)のIDに基づいてキーを見つけます(質問aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106)。
keys libnetwork *aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106*
返されたキー(おそらく「docker/network/v1.0/bridge/aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106/」)を使用してレコードを削除します。
del libnetwork docker/network/v1.0/bridge/aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106/
boltcli(Ctrl+ C)を終了してDockerを停止した後、元のデータベースファイルを変更されたデータベースファイルで上書きします(これを実行する前に元のデータベースファイルをコピーすることをお勧めします)。ドッカーを始めましょう。