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 でパスワードの有効期限を表示および設定する方法

適切な設定を行うことで、Linux ユーザーにパスワードを定期的に変更させることができます。パスワー...

MySQLサービスの自動停止の解決策

この記事では主に、MySQL サービスの自動停止の解決策を紹介し、参考と学習のために共有します。一緒...

さまざまな解像度やブラウザでウェブページを適切に表示する方法

キーコードは次のとおりです。コードをコピーコードは次のとおりです。 html{高さ:100%; }コ...

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...

HTMLページでよく使われるいくつかの小さなメソッド

<Head>タグに追加する<meta http-equiv="pragm...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

CentOS システムのディスク パーティションを拡張する方法

問題/障害/シナリオ/要件Eve-ng の仮想マシン OVA のハードディスクは 38G しかないた...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...

MySQLテーブルの自動インクリメント列の初期値をリセットする方法

MySQLテーブルの自動インクリメント列の初期値をリセットする方法1. 問題の説明MySQL データ...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

Alibaba Cloud MySQL スペースをクリーンアップする方法

今日、Alibaba Cloudからディスク警告通知を受け取りました。確認したところ、100Gのスペ...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

Vuex データの永続性を実装するためのアイデアとコード

vuexとはvuex: vue.js専用に開発された状態管理ツールで、すべてのコンポーネントの状態を...

vue+element で動的スキニングを実装するためのサンプルコード

プロジェクトのテーマがすべての人の美的感覚を満足できないこともあります。このとき、スキン変更機能は非...

Angular Cookie の読み取りおよび書き込み操作コード

Angular Cookie の読み取りおよび書き込み操作のコードは次のようになります。 var a...