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 テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

Tomcat サーバーの応答が遅い場合の解決策

1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...

CSSスタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する

インターネット経済の継続的な発展に伴い、インターネット上の専門ウェブサイト、公共サービスウェブサイト...

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

MySQL Group by最適化の詳細な説明

目次標準的な実行プロセス最適化並べ替えを削除並べ替え成し遂げる要約する標準の Group by ステ...

CSS フレックスベースのテキストオーバーフロー問題の解決方法

重要でないflex-basisテキストオーバーフローに省略記号を追加するという小さな機能に多くの問題...

Virtualbox に Centos7 仮想マシンをインストールする詳細なグラフィック チュートリアル

1. Centos7をダウンロードするダウンロードアドレス: https://mirrors.tun...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

MySQL 8.0.26 のインストールとアンインストールの完全なステップバイステップの記録

目次序文1. インストール1.公式サイトからダウンロード2. 構成を作成する3. MySQLを初期化...

Linux CentOS 6.5 ifconfig が IP を照会できない問題の解決方法

最近、何人かの友人から、仮想マシンに CentOS をインストールした後、ifconfig コマンド...

リアルタイムコンピューティングフレームワークFlinkクラスタの構築と動作メカニズムについての簡単な説明

目次1. Flinkの概要1.1 基本的な紹介1.2 アプリケーションシナリオ2. 環境の展開2.1...

Ubuntu 18.04 に VMware Tools をインストールする際のエラーを解決する

1. オンライン チュートリアルによると、Ubuntu 18.04 のインストールはまだ失敗します。...

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...

Tomcatを自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法

Tomcat が自動的にサービスを開始するように設定します。最近、問題が発生しました。サーバー上のプ...

MySQL における一般的なランキングの問題をいくつかまとめます

序文:一部のアプリケーション シナリオでは、成績や年齢によるランキングなど、ランキングの問題が発生す...