Dockerネットワーク管理とコンテナIP設定に基づいてNginxロードバランシングを実装する すべてのDockerネットワークを表示 docker ネットワーク ls /* ネットワーク ID 名前 ドライバー スコープ b832b168ca9a ブリッジ ブリッジ ローカル 373be82d3a6a composetest_default ブリッジ ローカル a360425082c4 ホスト ホスト ローカル 154f600f0e90 なし null ローカル */ // composetest_default は、前回の記事で Compose を紹介したときに docker-compose.yml ファイルが配置されているディレクトリ名です。 // そのため、docker-composeで作成されたコンテナは、デフォルトでディレクトリ名をネットワーク名としてネットワークを作成し、ドリッジ(ブリッジ)タイプになります。 コンテナのIPアドレスを指定する 公式ウェブサイトのドキュメントアドレス: https://docs.docker.com/compose/compose-file/#ipv4_address-ipv6_address 前回の記事「12. Docker Compose コンテナオーケストレーションツールの使用」から引き続き docker-compose.yml ファイルを書きます。 バージョン: "3" サービス: ウェブ1: コンテナ名: web1 画像: "centos:httpd" ポート: - 「8080:80」 特権: true ボリューム: - "/app/www/web1/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_アドレス: 192.169.0.3 ウェブ2: コンテナ名: web2 画像: "centos:httpd" ポート: - 「8081:80」 特権: true ボリューム: - "/app/www/web2/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_アドレス: 192.169.0.2 ネットワーク: nginx-lsb: ドライバー: ブリッジ ipam: 設定: - サブネット: 192.169.0.0/16 docker-composeを使用してコンテナを起動します docker-compose を起動 -d コンテナが起動しているか、ネットワーク nginx-lsb が作成されているかを確認します。 // 現在の docker-compose.yml で設定されたコンテナグループ内のコンテナステータスを表示できます docker-compose ps docker ネットワーク ls /* ネットワーク ID 名前 ドライバー スコープ b832b168ca9a ブリッジ ブリッジ ローカル 373be82d3a6a composetest_default ブリッジ ローカル de6f5b8df1c8 composetest_nginx-lsb ブリッジ ローカル a360425082c4 ホスト ホスト ローカル 154f600f0e90 なし null ローカル */ // コンテナ グループ プロジェクト ファイル名_ネットワーク名の先頭にちなんで名付けられた nginx-lsb ネットワークを作成しました ネットワーク nginx-lsb の詳細を表示 docker ネットワーク検査 composetest_nginx-lsb // 詳細では、このネットワークを使用している各コンテナの IP アドレスを確認できます。 のように: /* ... 「コンテナ」: { "039aa860ef04f20a7566fdc943fb4398a61d2ad6dd3e373b17c86ac778af89e3": { "名前": "web2", "エンドポイントID": "1bc206661179e65999015f132c2889d3d4365b8d42b8a89cf9c260016fedd5ee", "Macアドレス": "02:42:c0:a9:00:02", "IPv4アドレス": "192.169.0.2/16", "IPv6アドレス": "" }, "437ad7a07da8e46c0abaf845c4b08425338009fbe972bde69478cf47c75c315b": { "名前": "web1", "エンドポイントID": "5a36e602a5364ee9ad06e9816d09e3966d56ebf06b9394ebc25b8bcee9546607", "Macアドレス": "02:42:c0:a9:00:03", "IPv4アドレス": "192.169.0.3/16", "IPv6アドレス": "" } }, ... */ env_file 環境ファイルを使用します: 簡単に言えば、docker-compose.ymlで変数を定義し、外部の.envファイルで参照するということです。 公式ドキュメントのアドレス: https://docs.docker.com/compose/compose-file/#env_file // または、composetest ディレクトリに .env ファイルを定義して、変数 web1_addr=192.169.0.2 を保存します。 web2_addr=192.169.0.3 // docker-compose.yml ファイルを変更し、変数定義 version: "3" を追加します。 サービス: ウェブ1: コンテナ名: web1 画像: "centos:httpd" ポート: - 「8080:80」 特権: true ボリューム: - "/app/www/web1/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_address: ${web1_addr} ウェブ2: コンテナ名: web2 画像: "centos:httpd" ポート: - 「8081:80」 特権: true ボリューム: - "/app/www/web2/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_address: ${web2_addr} ネットワーク: nginx-lsb: ドライバー: ブリッジ ipam: 設定: - サブネット: 192.169.0.0/16 composetestプロジェクトを再起動し、ネットワークの詳細をチェックして、コンテナIPが正常に設定されているかどうかを確認します。 // composetestプロジェクトを再起動する docker-compose up -d // ネットワークの詳細を表示 docker network examine composetest_nginx-lsb composetest プロジェクトに nginx サーバーを負荷分散サーバーとして追加します。 // .env ファイルに変数 nginx_lsb を追加します web1_addr=192.169.0.2 web2_addr=192.169.0.3 nginx_lsb = 192.169.0.100 // docker-compose.yml ファイルを変更し、変数定義 version: "3" を追加します。 サービス: nginx-lsb: コンテナ名: nginx-lsb 画像: "centos:nginx" ポート: - 「8000:80」 特権: true ボリューム: - 「/app/nginx/nginx.conf:/etc/nginx/nginx.conf」 ネットワーク: nginx-lsb: ipv4_アドレス: ${nginx_lsb} ウェブ1: コンテナ名: web1 画像: "centos:httpd" ポート: - 「8080:80」 特権: true ボリューム: - "/app/www/web1/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_address: ${web1_addr} ウェブ2: コンテナ名: web2 画像: "centos:httpd" ポート: - 「8081:80」 特権: true ボリューム: - "/app/www/web2/:/var/www/html/" コマンド: ['/usr/sbin/init'] ネットワーク: nginx-lsb: ipv4_address: ${web2_addr} ネットワーク: nginx-lsb: ドライバー: ブリッジ ipam: 設定: - サブネット: 192.169.0.0/16 // composetestプロジェクトを再起動する docker-compose up -d nginx.conf設定ファイルを変更し、負荷分散を設定する アップストリーム mydocker { サーバー 192.169.0.2; サーバー 192.169.0.3; } サーバー{ 聞く 80; サーバー名 mydocker; 位置 / { proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering をオフ; proxy_pass http://mydocker; } } nginx-lsbを再起動して設定ファイルをロードします docker-composer で nginx-lsb を再起動します サーバーの負荷分散をテストするには、http://serverIP address:8000 にアクセスしてください。 注: 前回の記事では、異なる Web ファイルが 2 つの httpd サーバーに配置されていました。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Taobao の商品画像切り替え効果を実現する JavaScript
>>: JavaScript の実行コンテキストとコールスタックの詳細な説明
Yum経由でJenkinsをインストールする1. インストール # yum ソースをインポート wg...
MySQL 結合クエリ1. 基本概念2 つのテーブルの各行をペアで水平に接続して、すべての行の結果を...
目次1. 仮想DOMとは何ですか? 2. 仮想 DOM が必要な理由3. 仮想DOMはどのようにして...
目次序文1. ラベルスタイルを定義する2. GeoJSONデータのシミュレーション3. Vercto...
組合執行分析を簡単にするために、次のSQLを例として使用します。 テーブル t1 を作成します ( ...
この記事では、Linux yumを使用してmysql5.6をインストールする簡単な手順を参考までに紹...
歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...
この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...
/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...
目次配列の紹介配列リテラル2次元配列要約する配列の紹介配列- Arrayもオブジェクトですこれは通常...
序文この記事では、SQL インジェクションを回避するために pdo の前処理メソッドを使用します。詳...
ホワイトリストルールの構文:基本ルール wl:ID [否定] [mz:[$URL:target_ur...
1. リストクエリインターフェースの効果コード処理ロジックを紹介する前に、まずは感覚的に理解し、レン...
MySQL には、複数の .sql ファイル (SQL ステートメントを含む) をインポートする方法...
指導トピックウェブページ適用グレード高校2年生授業時間1 クラス教科書分析焦点: 静的および動的ウェ...