ホームページ  >  記事  >  運用・保守  >  Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てる

Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てる

PHPz
PHPzオリジナル
2023-04-19 15:26:53680ブラウズ

Docker は、アプリケーションを迅速かつ効率的に構築、デプロイ、実行できる非常に人気のあるコンテナ化テクノロジです。 Docker サービスは、Docker クラスター管理で最も一般的に使用されるメカニズムの 1 つです。 Docker サービスを使用すると、ユーザーは複数の Docker コンテナを 1 つのサービスに結合して、高可用性、負荷分散、その他の目的を実現できます。この記事では、Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てます。

Docker サービスとは何ですか?

Docker Service は Docker クラスター管理のメカニズムの 1 つで、複数の Docker コンテナーを 1 つのサービスに結合できます。 Docker Service は、高可用性、負荷分散、自動拡張などの機能を実装しており、ユーザーがサービスやアプリケーションを最適化するのに役立ちます。

Docker サービスは、レプリカやグローバルなど、さまざまなデプロイメント戦略をサポートしています。レプリカ ポリシーを使用する場合、ユーザーは起動するコンテナーの数を定義でき、Docker エンジンはクラスター全体にコンテナー インスタンスを自動的にデプロイおよび管理します。グローバル戦略を使用する場合、Docker エンジンはコンテナーのコピーを起動し、クラスター内の各ノードにデプロイします。

Docker サービスを使用するメリット

Docker サービスを使用すると多くのメリットが得られます。主なメリットをいくつか紹介します。

  • 高可用性: Docker サービスは簡単に実現できます。コンテナの高可用性により、ノードに障害が発生した場合でも、コンテナの自動バランシング機能により、新しいコンテナ インスタンスが他のノードで自動的に起動されます。
  • 負荷分散: Docker サービスを使用すると負荷分散を簡単に実現できるため、ユーザーのアプリケーションは負荷分散の問題に注意を払うことなく常に最適な状態になります。
  • 自動拡張: Docker サービスは自動拡張をサポートしており、ユーザーはコンテナーの数を調整するだけでアプリケーションを拡張できます。

Docker サービスはさまざまなディレクトリをどのように使用するのでしょうか?

Docker サービスは、デフォルトで、Dockerfile が配置されているディレクトリをコンテナー イメージのビルド コンテキストとして使用します。ただし、異なるディレクトリに異なるイメージをビルドする必要がある場合は、異なるビルド コンテキストを使用する必要があります。

以下では、さまざまなディレクトリを使用して Docker イメージを構築し、Docker サービスを使用してアプリケーションをデプロイする方法を紹介します。

  1. ディレクトリ構造の作成

まず、次のディレクトリ構造を作成します:

.
├── dockerfiles
│   ├── web1
│   │   ├── Dockerfile
│   │   └── index.html
│   └── web2
│       ├── Dockerfile
│       └── index.html
├── docker-compose.yml
└── services.yml

dockerfiles ディレクトリに、それぞれ web1 と web2 を作成しました。内容の。各ディレクトリには、Dockerfile ファイルとindex.html ファイルが含まれています。このうち、Dockerfile ファイルは Docker イメージの構築に使用され、index.html ファイルはコンテナーが正常に実行されているかどうかのテストに使用されます。

services.yml ファイルでは、web という名前のサービスを定義します。これは、2 つのコンテナー web1 と web2 をデプロイするために使用されます。

  1. Dockerfile の作成

この例では、web1 と web2 にそれぞれ Dockerfile を作成しました。それらは次のとおりです:

web1 ディレクトリの Dockerfile ファイル:

FROM nginx
COPY index.html /usr/share/nginx/html

web2 ディレクトリの Dockerfile ファイル:

FROM nginx
WORKDIR /usr/share/nginx/html
COPY index.html .

ここでは、異なる Dockerfile ファイルを使用し、別の Dockerfile ファイルを使用します。各ファイルにコンテキストを構築します。 web1 の Dockerfile は COPY ディレクティブを使用し、index.html ファイルを指定されたビルド コンテキストからコンテナーにコピーします。 web2 Dockerfile は、WORKDIR 命令と COPY 命令を使用します。これにより、作業ディレクトリが /usr/share/nginx/html に設定され、index.html ファイルがビルド コンテキストからコンテナにコピーされます。

  1. docker-compose.yml ファイルの作成

サービスを定義するために、引き続き docker-compose.yml ファイルを使用します。ファイルの内容は次のとおりです。

version: '3.7'

services:
  web1:
    build:
      context: ./dockerfiles/web1
    image: web1
    deploy:
      replicas: 2
    ports:
      - 8081:80

  web2:
    build:
      context: ./dockerfiles/web2
    image: web2
    deploy:
      replicas: 3
    ports:
      - 8082:80

docker-compose.yml ファイルでは、web1 と web2 という 2 つのサービスを定義し、それぞれ異なるビルド コンテキストを使用します。同時に、各サービスのレプリカとポートの属性も指定して、コンテナーの数とポート マッピングを制御します。

  1. サービスをデプロイする

最後に、Docker Stack コマンドを使用してサービスをデプロイします。

$ docker stack deploy -c services.yml myapp

コマンドの実行が完了したら、次のことができます。次のコマンドを使用してサービスのステータスを表示します:

$ docker stack ps myapp
  1. サービスのテスト

サービスの展開が完了したら、ブラウザを使用して次の URL にアクセスしてテストできます。 web1 サービスと web2 サービスが正常に実行されているかどうか:

web1 サービス:

http://localhost:8081

web2 サービス:

http://localhost:8082

すべてが正常であれば、index.html ファイルの内容が表示されます。各サービスごとに。

概要

この記事では、Docker サービスでコンテナーを構築するためにさまざまなディレクトリを使用する方法を紹介しました。異なる Dockerfile を使用して 2 つのサービスを作成し、docker-compose.yml ファイルでサービスのビルド コンテキストを定義しました。最後に、サービスをデプロイし、サービスが適切に実行されていることをテストしました。これにより、Docker サービスを使用するユーザーが別のディレクトリにコンテナー イメージを構築する便利な方法が提供されます。

以上がDocker サービスでさまざまなディレクトリを使用する方法に焦点を当てるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。