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

推薦する

Dockerコンテナの紹介

1. 概要1.1 基本概念: Docker は、Go 言語をベースにしたオープンソースのアプリケーシ...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

ubuntu18.04 での qt5.12.8 のインストールと環境設定に関する詳細なチュートリアル

環境システム: Ubuntu 18.04ソフトウェア: qt5.12.8 1. インストールパッケー...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

3Dカルーセル効果を実現するjs

この記事では、3Dカルーセル効果をjsで実装するための具体的なコードを参考までに共有します。具体的な...

Docker イメージを Docker Hub にプッシュする実装

イメージが正常にビルドされると、Docker 環境があれば使用できますが、イメージを Docker ...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

MySQL 接続クエリを本当に学びましたか?

1. 内部結合クエリの概要内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォ...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

MySQL 条件付きクエリと使用法および優先順位の例の分析

この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...

CSSの幅と高さのデフォルト値の詳細な説明:autoと%

結論は幅の%: 包含ブロック(親要素)の幅に基づいて、親の制限を超える幅のパーセンテージを定義します...

nginx が動的と静的の分離を実装する方法の例

目次server1にnginxをデプロイするサーバーにlnmpを展開するノード3にhttpdをデプロ...

Dockerで同じIDを持つ2つのイメージを削除する

今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...