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

推薦する

モバイルプラットフォーム開発におけるメタタグの適用の詳細な説明

デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...

HTML でシンプルな ListViews 効果を実装するためのサンプル コード

シンプルなリストビュー効果を実現するHTML結果: CSS スタイル ファイル listviewTe...

MySQL での正規表現置換のための replace と regexp の使用法の分析

この記事では、例を使用して、replace と regexp を使用して MySQL で正規表現を置...

Linux システムの .bash_profile ファイルの詳細な説明

目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...

方言変換のためのApache Calciteコード

意味Calcite は、Sql を SqlNode に解析し、次に SqlNode を特定のデータベ...

Docker rocketmq デプロイメントの実装例

目次準備展開プロセスRocketMQ の初体験関連する質問ヘルプドキュメント私は最近 RocketM...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

Linux で mysql-8.0.20 をインストールするための詳細なチュートリアル

** Linuxにmysql-8.0.20をインストールする**環境の紹介オペレーティングシステム:...

MySQL 8.0.12 クイックインストールチュートリアル

MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

innerHTML アプリケーション

ブランクのブログ: http://www.planabc.net/ innerHTML プロパティは...

MySQL テーブルの垂直分割と水平分割

垂直分割垂直分割とは、データテーブルの列を分割すること、つまり、多くの列を持つテーブルを複数のテーブ...

MySQL 8.0 の新機能 - チェック制約の紹介

目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...