Dockerは単一のイメージを使用して複数のポートにマッピングします

Dockerは単一のイメージを使用して複数のポートにマッピングします

必要:

公式サイトのリソースサーバーは確かに1つのインスタンスでは使えず、複数のインスタンスを一緒に使う必要があるのですが、コピーし続けると遅すぎるので、dockerイメージを直接使って同一のコンテナインスタンスを複数作成できないかと考えています。

2 つの docker-compose.yml ファイル

バージョン: '3'
サービス:
 マイクロHCネットウェブサイト13:
  イメージ: 172.18.0.1:5000/hcnet-website-12:0.0.1-SNAPSHOT
  再起動: 失敗時
  ポート:
  -8311:8211
〜
バージョン: '3'
サービス:
 マイクロHCネットウェブサイト13:
  イメージ: 172.18.0.1:5000/hcnet-website-12:0.0.1-SNAPSHOT
  再起動: 失敗時
  ポート:
  -8211:8211
〜

docker-compse.ymlを実行した後

通常の起動を表示

コンテナを表示

マッピングの成功

最後に領事をチェック

確かに、それらはすべて同じマッピング インターフェースです。

追加知識: Docker 入門 - 複数のコンテナの構築 (docker-compose)

一度に複数のサービス(コンテナ)を起動すると、実稼働環境での運用が容易になります。

haproyのロードバランシングApacheサービスとnginxサービスを例に挙げます

Compose による Docker のマルチコンテナ アプリケーション

Compose は、ユーザーが複数のコンテナを定義して実行できるようにする Docker アプリケーションです。 Compose では、YAML ファイルを使用してアプリケーション サービスを構成できます。次に、簡単なコマンドを 1 つ実行するだけで、構成したすべてのサービスが作成され、開始されます。

Compose を使用するには、基本的に次の 3 つの手順を実行します。

Dockerfile でアプリケーション環境を定義して、どこでも複製できるようにします。

アプリケーションを構成するサービスを docker-compose.yml で定義し、分離された環境で一緒に実行できるようにします。

最後に、docker-compose up を実行すると、Compose が起動し、アプリケーション全体が実行されます。

1. docker-compose.ymlファイルを編集して複数のイメージを指定します。

apache: # apache サービス image: rhel7:v1 # 親イメージ名 expose:
        - 80 # ポートボリュームを公開: # ボリュームをマウント - ./web/:/var/www/html

nginx: # nginx サービスimage: nginx # 親イメージexpose:    
        - 80 # ポートを公開 haproxy: # haproxy サービス image: haproxy # 親イメージ volumes: # ボリュームをマウント - ./haproxy:/usr/local/etc/haproxy
    リンク: # 関連コンテナ - apache
        - nginx
    ポート: #ポートマッピング - "8080:80"
    expose: # 公開されたサービスポート - 80

2. haproxy設定ファイルを編集する

global # グローバル設定、ログ情報 log 127.0.0.1 local0
    ログ 127.0.0.1 local1 通知
デフォルト
    ロググローバル
    オプション httplog
    オプション dontlognull
    タイムアウト接続 5000ms
    タイムアウトクライアント 50000ms
    タイムアウトサーバー 50000ms
    統計 uri /status
フロントエンドバランサー
    bind 0.0.0.0:80 # リスニングポート default_backend web_backends # デフォルトバックエンド backend web_backends
    バランスラウンドロビン
    server weba apache:80 check # バックエンド a apache は .yml ファイル内のリンクの内容に対応します server webb nginx:80 check

必要な書類が十分かどうか確認する

[root@foundation21 compose]# ls
docker-compose.yml haproxy ウェブ
[root@foundation21 compose]# pwd
作成する
# ファイルの所属を表示 [root@foundation21 compose]# ツリー
。
├── docker-compose.yml
├── ハプロキシ
│ └── haproxy.cfg
└──ウェブ
  └──index.html

2 つのディレクトリ、3 つのファイル

cmoposeディレクトリでdocker-compose upコマンドを実行して、複数のイメージを同時に起動します。

ブラウザで表示するには:

haproxyはバックエンドWebサーバーの負荷分散を実装します

上記の Docker は、単一のイメージを使用して複数のポートにマップします。これは、エディターがあなたと共有するすべてのコンテンツです。参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • Docker ファイルの保存パス、ポート マッピング操作モードの変更
  • Docker プライマリ ネットワーク ポート マッピング構成
  • 実行中のDockerコンテナのポートマッピングを変更する方法
  • Docker でコンテナのポート マッピングを動的に変更する方法
  • Docker ポート マッピングと外部アクセス不可の問題
  • ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス
  • Dockerコンテナの起動後にポートマッピングを追加する
  • Dockerは複数のポートマッピングコマンドを有効にします

<<:  MySQL共通インデックスとユニークインデックスの選択に関する詳細な分析

>>:  html2canvasで画像が正常にキャプチャできない時の解決方法

推薦する

MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...

MySQL で固定されていない位置から文字列要素を抽出する方法

序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...

CSS3+JavaScript を使用したクールな呼吸効果のサンプル コード

CSS3 アニメーションで実現したシンプルでクールな効果。最終的な効果は次のようになります。 ページ...

MySQL 5.7.20 Green Edition のインストールの詳細なグラフィックチュートリアル

まず、MySQL とは何かを理解しましょう。 MySQL は、スウェーデンの会社 MySQL AB ...

Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)

その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...

Centos7 のインストールと Mysql5.7 の設定

ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...

Vueでブラウザ共有機能を呼び出す方法

序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...

Linux centos7 環境での MySQL インストール チュートリアル

Linux centos7 環境に MySQL をインストールする手順の詳細な紹介MySQLをインス...

コードを通じてHTMLエスケープ文字を識別する方法について説明します

データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

MySQL 権限昇格のさまざまな形態の概要

目次1. Webshel​​lを書く出力ファイルにシェルを書き込むログファイル書き込みシェル2. U...

JavaScriptの動作原理を理解しましょう

目次ブラウザカーネルJavaScript エンジンV8エンジンJavaScript がどのように実行...

Tinymce リッチテキストを使用して Vue のツールバーボタンをカスタマイズする実践

目次tinymce、tinymce ts、tinymce-vue 宣言ファイルをインストールするパッ...