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

推薦する

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

jQuery は呼吸カルーセルを実装します

この記事では、ブレッシングカルーセルを実装するためのjQueryの具体的なコードを参考までに共有しま...

MySQL 8.0 のメモリ関連パラメータの概要

理論的には、MySQL によって使用されるメモリ = グローバル共有メモリ + max_connec...

MySQL マスタースレーブレプリケーションの読み書き分離構造の詳細な説明

MySQL マスタースレーブ設定MySQL のマスター/スレーブ レプリケーションと読み取り/書き込...

CSSでイメージマッピングを実装する方法

1. はじめにイメージマップを使用すると、画像の領域をホットスポットとして指定できます。この領域にマ...

IDEA で Docker を WSL2 にデプロイする詳細なプロセス

ローカル環境はWindows10+WSL2(Ubuntu)です。サーバーにDockerをインストール...

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

Linux で大容量メモリ ページを持つ Oracle データベースを最適化する方法

序文PC サーバーは今日まで発展を続け、パフォーマンスにおいて大きな進歩を遂げてきました。 64ビッ...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...

Docker デプロイメント Consul 構成プロセスの分析

コマンドを実行docker run -d --name consul -p 8500:8500 co...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

Docker を使用して Spring Boot をデプロイする方法の例

ここでは主に、スタンドアロンのプログラムを生成できるspring-bootと、Mavenプラグインd...