Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景

同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトのイントラネット セグメントは 172.16.0.0/12 であり、テスト サーバー上のサービスは基本的に Docker を使用してデプロイされています。
以前の同僚がこのマシンにインストールした Docker はすべてデフォルト設定で、ネットワーク セグメントは 172.17.0.0/24 です。実際の使用では、172.17.0.1 経由でホスト マシンにアクセスする必要があり、他のホスト マシンの IP と競合するため、コンテナのデフォルト ネットワーク セグメントを変更する必要があります。

回避策

1. ホスト上のDockerサービスを停止する

sudo systemctl でdockerを停止します

2. コンテナ設定ファイル /etc/docker/daemon.json を変更する

sudo cat /etc/docker/daemon.json
{
  "レジストリミラー": ["https://gbs4gco0.mirror.aliyuncs.com"],
  "ビップ": "10.50.0.1/16",
}

上記のコードで説明されているように、構成ファイルのbipフィールドは、ホストマシンのdockerネットワークセグメントを設定し、それをプライベートネットワークアドレス(192.168.0.0/10.0.0.0/172.0.0.0)に構成することができます。

3. Dockerサービスを開始する

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

4. docker-0ブリッジアドレスを確認する

sudo 設定
...
docker0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500
    inet 10.50.0.1 ネットマスク 255.255.0.0 ブロードキャスト 10.50.255.255
    inet6 fe80::42:46ff:fe18:add5 プレフィックス長 64 スコープID 0x20<リンク>
    ether 02:42:46:18:ad:d5 txqueuelen 0 (イーサネット)
    RXパケット 14697564 バイト 5943503139 (5​​.5 GiB)
    RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0
    TX パケット 15379709 バイト 6846099156 (6.3 GiB)
    TXエラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0
...

この時点で、Docker のデフォルトのネットワーク セグメントが変更されています。以前のコンテナの IP が変更されたかどうかを確認できます。

sudo docker コンテナを検査 alipne --format="{{.NetworkSettings.IPAdress}}"
10.50.0.2

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerのデフォルトネットワークセグメントの正しい変更手順
  • Docker で Docker0 ブリッジのデフォルトのネットワーク セグメントを変更する方法
  • Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明
  • Dockerは同じIPネットワークセグメントとの接続を実現する
  • Docker は、ホストと同じネットワーク セグメントにある IP アドレスを指定します。
  • Docker はホスト ネットワーク セグメント IP をどのように割り当てますか?
  • Dockerコンテナはカスタムネットワークセグメントで固定IP/静的IPアドレスを指定します

<<:  vue3 キャッシュページキープアライブと統合ルーティング処理の詳細な説明

>>:  はじめに: HTML の基本的なタグと属性の簡単な紹介

推薦する

HTML マーキータグの使用例

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルのみをサポートしています。そのため、...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

MySQL における int の最大値の詳細な説明

導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...

MySQL のジオメトリ型を使用して経度と緯度の距離の問題を処理する方法

テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...

Win10 VM 仮想マシンに Mac OS10.14 を完璧にインストールする (グラフィック チュートリアル)

最近、Apple の記者会見を見てとても興奮したので、Mac システムを体験して Apple の素晴...

JavaScriptの強力な演算子をいくつか見てみましょう

目次序文1. ヌル合体演算子2. ??= 空代入演算子3. ?. オプション連鎖演算子4. ?: 三...

Linux でスペースを含むファイルを削除する (ディレクトリではない)

日常業務では、スペースのないファイルに遭遇することがよくあります。これにより、削除操作がはるかに簡単...

MySQL 8.0.17 解凍版のインストールと設定方法のグラフィックチュートリアル

インストール中に遭遇した問題を記録しておきますので、皆様のお役に立てれば幸いです。 1. ダウンロー...

Ajax は CORS レスポンス ヘッダーを設定してクロスドメインの問題を解決し、クロスドメインのケース スタディを実現します。

1. クロスドメインを実現するためにCORSレスポンスヘッダーを設定するクロスオリジンリソース共有...

JavaScript における 3 つの for ループ ステートメントの使用の概要 (for、for...in、for...of)

序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...

Vue は検証コードのカウントダウンボタンを実装します

この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...

hrefを使用すると、リンクをクリックするだけでページ上の特定の場所にジャンプできます。

ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...