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 の基本的なタグと属性の簡単な紹介

推薦する

Linuxのsortコマンドの複数のパラメータを理解するための1つの質問

sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...

Linux での vi (vim) の新しい使い方のまとめ

私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...

CentOS7 で jar アプリケーションの起動を設定する方法

プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...

React は antd のアップロード コンポーネントを使用してファイル フォーム送信機能を実装します (完全なコード)

私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...

CentOS 7 に mysql5.7 の解凍バージョンをインストールするチュートリアル

1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...

画像ソーシャルネットワーキングサイトのUIアプリケーションの比較分析(図)

私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...

nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...

ES6スプレッド演算子の使用例

目次スプレッド演算子とレスト演算子とは何ですか?配列スプレッド演算子残り演算子(コレクション関数)ス...

JS で配列をループする 4 つの方法のまとめ

この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...

docker run -v はデータボリュームを異常にマウントし、コンテナのステータスは常に再起動になります。

問題点: docker run に -v パラメータを追加すると、コンテナは常に再起動状態になります...

Linux に Python 3.8.1 をインストールするための詳細なチュートリアル

この例では、Linux への Python 3.8 のインストールを例に挙げます。 1. 依存パッケ...

MySQLにおけるトランザクション分離レベルの実装原理の詳細な説明

序文データベース トランザクションに関して言えば、トランザクションの ACID 特性、分離レベル、解...

MySQL 最適化技術における Limit クエリの最適化分析

序文実際のビジネスでは、ページングは​​一般的なビジネス要件です。次に、制限クエリを使用します。制限...

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...

Linux システム Docker への ASP.NET Core アプリケーションのデプロイのプロセス分析

目次1. システム環境2. 運用プロセスと途中で遭遇した問題1. システム環境1. Tencent ...