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で画像が正常にキャプチャできない時の解決方法

推薦する

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

MySQLテーブル構造を変更するコマンドを表示する

簡単な説明エディターはデータベースのエンコードが間違っているために問題に遭遇することが多く、これは頭...

aタグに下線を付け、クリック前後で色を変える方法

コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...

LINUX でポートが占有されているかどうかを確認する方法

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

Linuxのip netnsコマンドを使用してネットワークポートを分離し、IPアドレスを設定します。

1. 分離マーカーを追加します。 ip netns add fd 2. 指定されたネットワーク カ...

MySQL サービスに iptables ファイアウォール ポリシーを追加するためのソリューション

MySQL データベースが Centos7 システムにインストールされており、オペレーティング シス...

XHTML 特殊文字コレクション

注意&#160;ノーブレークスペース = ノーブレークスペース、 iexcl ¡ &...

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

kubernetes1.5.2 から kubernetes1.10 にアップグレードする際の主要な設定変更記録

この記事では、kubernetes1.5.2 から kubernetes1.10 にアップグレードす...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

アイデアを使用して Springboot 初期化サーバーを構築する際の問題分析

問題の説明最近、Springbootプロジェクトを構築していたところ、会社のネットワークケーブルに接...