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のGROUP BYステートメントを最適化する方法

MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

Windows で MySQL インストーラーを使用して MySQL サービスをインストールするチュートリアル図

MYSQL は、MYSQL サービスやその他のコンポーネントをインストールするためのインストーラ方式...

Linuxファイルを表示するコマンドの詳細な説明

Linuxファイルを表示する方法ファイルの内容を表示するコマンド: catは最初の行からコンテンツを...

JSON.stringify の簡易版の実装とその 6 つの主要機能の詳細な説明

目次序文JSON.stringify の 6 つの機能特集1特集2特集3特集4特集5特集6手動で文字...

Tomcat で静的リソースを処理するチュートリアル

序文Tomcat 内のすべてのリクエストは Servlet によって処理され、静的リソースも例外では...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

過去2年間のユーザーエクスペリエンス

<br />国内のウェブサイトが本格的に普及し、ユーザーエクスペリエンスに重点が置かれる...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

NavicatがMySQL8.0.11に接続するとエラー2059が発生する

間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...

MySQL のバックアップとリカバリの設計アイデア

背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...

MySQLでテーブルを作成し、フィールドコメントを追加する方法

コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...

Linuxサーバー間のリアルタイムファイル同期の実現

使用シナリオ既存のサーバー A と B の場合、サーバー A の指定されたディレクトリ (たとえば、...

HTMLタグのデフォルトスタイルの配置

html、address、blockquote、body、dd、div、dl、dt、fieldset...