Docker は、アプリケーションを迅速かつ効率的に構築、デプロイ、実行できる非常に人気のあるコンテナ化テクノロジです。 Docker サービスは、Docker クラスター管理で最も一般的に使用されるメカニズムの 1 つです。 Docker サービスを使用すると、ユーザーは複数の Docker コンテナを 1 つのサービスに結合して、高可用性、負荷分散、その他の目的を実現できます。この記事では、Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てます。
Docker サービスとは何ですか?
Docker Service は Docker クラスター管理のメカニズムの 1 つで、複数の Docker コンテナーを 1 つのサービスに結合できます。 Docker Service は、高可用性、負荷分散、自動拡張などの機能を実装しており、ユーザーがサービスやアプリケーションを最適化するのに役立ちます。
Docker サービスは、レプリカやグローバルなど、さまざまなデプロイメント戦略をサポートしています。レプリカ ポリシーを使用する場合、ユーザーは起動するコンテナーの数を定義でき、Docker エンジンはクラスター全体にコンテナー インスタンスを自動的にデプロイおよび管理します。グローバル戦略を使用する場合、Docker エンジンはコンテナーのコピーを起動し、クラスター内の各ノードにデプロイします。
Docker サービスを使用するメリット
Docker サービスを使用すると多くのメリットが得られます。主なメリットをいくつか紹介します。
Docker サービスはさまざまなディレクトリをどのように使用するのでしょうか?
Docker サービスは、デフォルトで、Dockerfile が配置されているディレクトリをコンテナー イメージのビルド コンテキストとして使用します。ただし、異なるディレクトリに異なるイメージをビルドする必要がある場合は、異なるビルド コンテキストを使用する必要があります。
以下では、さまざまなディレクトリを使用して Docker イメージを構築し、Docker サービスを使用してアプリケーションをデプロイする方法を紹介します。
まず、次のディレクトリ構造を作成します:
. ├── 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 をデプロイするために使用されます。
この例では、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 ファイルがビルド コンテキストからコンテナにコピーされます。
サービスを定義するために、引き続き 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 つのサービスを定義し、それぞれ異なるビルド コンテキストを使用します。同時に、各サービスのレプリカとポートの属性も指定して、コンテナーの数とポート マッピングを制御します。
最後に、Docker Stack コマンドを使用してサービスをデプロイします。
$ docker stack deploy -c services.yml myapp
コマンドの実行が完了したら、次のことができます。次のコマンドを使用してサービスのステータスを表示します:
$ docker stack ps myapp
サービスの展開が完了したら、ブラウザを使用して次の URL にアクセスしてテストできます。 web1 サービスと web2 サービスが正常に実行されているかどうか:
web1 サービス:
http://localhost:8081
web2 サービス:
http://localhost:8082
すべてが正常であれば、index.html ファイルの内容が表示されます。各サービスごとに。
概要
この記事では、Docker サービスでコンテナーを構築するためにさまざまなディレクトリを使用する方法を紹介しました。異なる Dockerfile を使用して 2 つのサービスを作成し、docker-compose.yml ファイルでサービスのビルド コンテキストを定義しました。最後に、サービスをデプロイし、サービスが適切に実行されていることをテストしました。これにより、Docker サービスを使用するユーザーが別のディレクトリにコンテナー イメージを構築する便利な方法が提供されます。
以上がDocker サービスでさまざまなディレクトリを使用する方法に焦点を当てるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。