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 シャドウ効果の比較: ドロップシャドウとボックスシャドウ

推薦する

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

CSS3で実装された読み込みアニメーション

成果を達成する実装コード <h1>123WORDPRESS.COM</h1>...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

MySQL 5.7 の一時テーブルスペースを使用して落とし穴を回避する方法

導入MySQL 5.7 は、SSL/TLS と全体的なセキュリティ開発におけるいくつかの重要な変更に...

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する1. シーケンスレコードテーブルを作成する テーブル `sys_...

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

MySQL統計の概要

MySQL は、SQL 解析とクエリ最適化のプロセスを通じて SQL を実行します。パーサーは SQ...

VMware仮想マシンにLinux(CentOS)をインストールするための詳細な構成手順

CentOS7をダウンロード私がダウンロードしたイメージはCentOS-7-x86_64-DVD-1...

Windows 10 での MySQL 5.7.19 インストール チュートリアル MySQL のルート パスワードを忘れた場合の変更方法

MySQL 5.7.19のインストールを例に挙げると、まずダウンロードしますもちろん、最初に行うこと...

ウェブサイトのパフォーマンスを向上させるために画像を最適化する方法

目次概要画像圧縮とはJPEG/JPG JPGの利点JPGの使用シナリオJPGの欠点MozJPEG を...

進捗バーのネイティブ JavaScript 実装

進捗バーを実装するためのJavaScriptの具体的なコードは参考までに。具体的な内容は次のとおりで...

Debian 9 システムに MySQL データベースをインストールする方法

序文タイトルを見ると、誰もが「Debian 9 に MySQL をインストールするにはどうすればいい...

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...

Javascriptのクロージャとアプリケーションの詳細な説明

目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...