Docker-compose はブリッジを作成し、サブネットを追加し、ネットワーク カードを削除します。

Docker-compose はブリッジを作成し、サブネットを追加し、ネットワーク カードを削除します。

1. Dockerネットワークカードを作成する

[root@i ~]# brctl addbr docker0
[root@i ~]# ip addr add 192.168.42.1/24 dev docker0  
# ここでの IP は Docker 内部で使用するためのもので、任意の IP を設定できます [root@i ~]# ip link set dev docker0 up
[root@i ~]# ip addr show docker0
# ドッカーを表示
[root@i ~]# systemctl dockerを再起動します
[root@i ~]# systemctl dockerを再起動します
# dockerサービスを開始する

2. サブネットを追加する

[root@i ~]# docker ネットワークバックエンドを作成します
# このようにしてバックエンドサブネットを作成し、docker-compose はこのネットワークを直接使用できます。
# サブネットが共通でない場合は、次のコマンドを使用してセキュリティの問題をスキップします [root@i ~]# docker network create backend --subnet 172.24.24.0/24
 
[root@i ~]# docker ネットワーク ls
ネットワーク ID 名前 ドライバー スコープ
6afff4d90f05 バックエンド ブリッジ ローカル
57de7f32064e ブリッジ ブリッジ ローカル
4b44a5340d6e ホスト ホスト ローカル
ac8e8ffe243f なし null ローカル

ここでバックエンドを見ることができます

3. ネットワークカードを削除する

[root@i ~]# brctl 表示
#ブリッジのステータスを確認する ブリッジ名 ブリッジID STP対応インターフェース
br-5db3fa0c465f 8000.02424cfb3937 いいえ veth038d483
                            ベス2950f5c
                            翻訳者
                            ベス715203f
                            veth9f31643
                            翻訳者
docker0 8000.3a4803cd6298 なし veth9d3badb
                            翻訳者
[root@i ~]# brctl delif <ブリッジ名> <ポート名>
#ブリッジ上のポートをアンインストールする [root@i ~]# ifconfig
# ブリッジネットワークカード名があるか確認する [root@i ~]# ifconfig <ブリッジ名> down
#このネットワークカードをオフにする[root@i ~]# brctl delbr <ブリッジ名>
#ブリッジを削除する

補足: Docker-Composeによって自動的に作成されたブリッジとLAN間の競合に対する究極の解決策

1. 問題の説明

docker-compose を使用してアプリケーションをデプロイする場合、docker のデフォルトのネットワーク モードはブリッジであり、デフォルトのネットワーク セグメントは 172.17.0.1/16 です。残念ながら、私たち自身の物理マシンの LAN もネットワーク セグメント 172.18.0.1/16 を使用しています。

docker-compose -f docker-compose.yml up -d を実行してサービスをデプロイすると、自動生成されたブリッジが順番に 172.18.xx を使用するようになりますが、悲しいことが起こりました。 docker によって生成されたブリッジはローカル エリア ネットワークと競合します。

こうして、Baiduプログラミングへの長い旅が始まりました... しかし、BaiduとGoogleを何度も調べて、お互いにコピーされた多くのブログを見つけ、最終的に何度も試行錯誤しましたが、結局は問題を解決できませんでした。 そこで、金含有量が99.9999999999999999999999999%のこの記事が公開されました。

この実験のDockerバージョン

[root@node100 docker-compose]# docker info | grep 'サーバーバージョン'
 サーバーバージョン: 19.03.12

2. 解決策

docker-composeによって作成されたコンテナを停止する

docker-compose -f docker-compose.yml ダウン

Dockerコンテナの操作

# Dockerコンテナを停止します sudo systemctl stop docker
# docker0 ブリッジを停止します sudo ip link set dev docker0 down
# docker0 ブリッジを削除します sudo brctl delbr docker0
# iptablesをリセットする
sudo iptables -t nat -F ポストルーティング

追伸

# Linux brctl コマンドが見つかりません。brctl をインストールしてください 
yum で bridge-utils をインストール -y

daemon.json を変更する

# daemon.json ファイルを編集する vim /etc/docker/daemon.json
# Dockerコンテナ「default-address-pools」のIPセグメントの設定を含む次のコンテンツを追加します: [
  {
   「ベース」:「192.168.0.0/16」、
   「サイズ」: 24
  }
]

追伸

注意: daemon.json に他のコンテンツが含まれている場合は、必ずコンマを使用して区切ってください。

Dockerコンテナを再起動する

sudo systemctlデーモンリロード
sudo systemctl dockerを起動します

docker-composeコマンドを再インストールして起動します

docker-compose -f docker-compose.yml アップ -d

3. 拡張計画

ISSUESマスターによるソリューションを入手するにはここをクリックしてください

解決策1

解決策2

オプション3

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Docker Compose ネットワーク設定の説明
  • docker-compose ネットワーク設定についての簡単な説明
  • Dockerはブリッジを追加し、IPアドレスの範囲を設定します
  • Dockerカスタムブリッジdocker0とdockerのコマンド操作の開始、終了、再起動
  • Centos Docker ブリッジ モードでホスト Redis サービスにアクセスできないというトラブルシューティングの経験

<<:  入力ボックスのオートコンプリート機能をオフにする

>>:  CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

推薦する

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)サーバーの同時処理能力を定量的に表したもので、reqs...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

Ubuntu 19でdockerソースをインストールできない問題を共有する

主要な Web サイトと個人的な習慣に従って、Docker ソースを追加するには次の方法を使用します...

要素 DateTimePicker+vue ポップアップボックスに時間のみが表示される問題を解決する

3つの知識ポイント: 1. CSS子孫セレクターhttps://www.w3school.com.c...

DockerでRedisを使用するための詳細な手順

1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。

ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...

JSはプログレスバーをドラッグして要素の透明度を変更することを実装しています

今日ご紹介したいのは、ネイティブ JS を使用してプログレス バーをドラッグし、要素の透明度を変更す...

Vuexはセッションストレージデータを結合して、ページを更新するときにデータが失われる問題を解決します

目次序文1. 理由: 2. 解決策のアイデア: 1. ローカル保存方法: 2. 実装手順: 3. 最...

JavaScript での && および || 演算子の使用例

目次序文&& 演算子|| 演算子|| 演算子の簡単なデモ章の目的ケース演習(json...

Bootstrap5 ブレークポイントとコンテナの具体的な使用法

目次1. Bootstrap5 ブレークポイント1.1 モバイルファースト1.2 ブートストラップブ...

純粋な CSS カスタム複数行省略記号の問題 (原理から実装まで)

テキストオーバーフローを表示するにはどうすればいいですか? どのようなニーズがありますか?単一行です...

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...