dockerは私のブリッジ名が見えないネットワークと衝突すると文句を言います。

dockerは私のブリッジ名が見えないネットワークと衝突すると文句を言います。

コンピュータを再起動して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 prune3つの項目だけが残りました。しかし、br1はまだ生成されます。

ベストアンサー1

これはDockerネットワークの削除に失敗し、ブリッジレコードがデータベースに残っている場合に発生します。データベースの場所は/var/lib/docker/network/files/local-kv.db(AlmaLinux)です。一般的なアドバイスはDockerを停止し、このデータベースを削除してコンテナを再構築することですが、これは大規模なインフラストラクチャに最適なソリューションではありません。この場合のより良い解決策は、データベースから残りのブリッジレコードを削除することです。これはBoltcliツールです(https://github.com/spacewander/boltcli)。

  1. goがインストールされたと仮定してboltcliをインストールします。 go install github.com/spacewander/boltcli@latest

  2. local-kv.dbをコピーし、Boltcliを使用して開きます。 boltcli /path_to_db_copy/local-kv.db

  3. 使用するバケットをリストします。 buckets * バケットは「libnetwork」である可能性が高いです。

  4. 競合するネットワーク(またはその一部)のIDに基づいてキーを見つけます(質問aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106)。

    keys libnetwork *aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106*

  5. 返されたキー(おそらく「docker/network/v1.0/bridge/aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106/」)を使用してレコードを削除します。

    del libnetwork docker/network/v1.0/bridge/aed743fd32b35084f5ccee11e4cfb631b31dccb2fec79cba60cd5f4252b03106/

  6. boltcli(Ctrl+ C)を終了してDockerを停止した後、元のデータベースファイルを変更されたデータベースファイルで上書きします(これを実行する前に元のデータベースファイルをコピーすることをお勧めします)。ドッカーを始めましょう。

おすすめ記事