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

推薦する

VirtualBox Centos7 の NAT+ホストオンリーネットワークの落とし穴のまとめ

目次1. 問題の背景2. 仮想マシン ネットワーク カードの接続方法は何ですか? 2.1 NAT 2...

CSSオーバーフローメカニズムについての簡単な説明

CSS オーバーフローのメカニズムを詳細に学ぶ必要があるのはなぜですか?実際の開発プロセスでは、コン...

Docker に fastdfs イメージをインストールする際の注意事項

1. Docker環境を準備する2. fastdfsイメージを検索する 3. イメージをプルするdo...

CentOS7にMariaDB 10.2.4をインストールする方法の詳細な説明

CentOS 6 以前のバージョンでは、MySQL サーバー/クライアント インストール パッケージ...

DockerにRabbitMQを素早くインストールする方法

1. 画像を取得する #Webコントロールページを含むバージョンを指定します docker pull...

nginx の場所に複数の Proxy_pass メソッドがある

1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...

この記事では、Vueのフロントエンドページングとバックエンドページングを実装する方法を説明します。

目次1: フロントエンドの手書きページング(データ量が少ない場合) 2: バックエンドのページング、...

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...

JS を使用して航空機戦争の小さなゲームを実装する

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

Ubuntu で apt-get を使用して mysql をインストールおよび完全にアンインストールする方法の詳細な説明

1. mysqlをインストールします。 udo apt-getでmysql-serverをインストー...

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

Nginx 7層負荷分散のいくつかのスケジューリングアルゴリズムの簡単な理解

この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...

Element PlusはAffixを実装します

目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...