Docker-Compose プロジェクトは Docker の公式オープンソース プロジェクトであり、Docker コンテナ クラスターの迅速なオーケストレーションを担当します。 Compose を使用すると、ユーザーは、別個の docker-compose.yml テンプレート ファイル (YAML 形式) を通じて、関連するアプリケーション コンテナーのセットをプロジェクトとして定義できます。 Docker-Compose プロジェクトは Python で記述されており、Docker サービスによって提供される API を呼び出してコンテナーを管理します。したがって、操作しているプラットフォームが Docker API をサポートしている限り、Compose をオーケストレーション管理に使用できます。
Docker-Compose は、管理対象コンテナをプロジェクト、サービス、コンテナという 3 つの層に分割します。 Docker-Compose の実行ディレクトリにあるすべてのファイル (docker-compose.yml、拡張ファイルや環境変数ファイルなど) がプロジェクトとなり、特に指定がない場合、プロジェクト名はカレントディレクトリ名となります。プロジェクトには複数のサービスを含めることができ、各サービスはコンテナーが実行するイメージ、パラメーター、依存関係を定義します。サービスには複数のコンテナ インスタンスを含めることができますが、Docker-Compose では負荷分散の問題は解決できないため、サービスの検出と負荷分散を実現するには他のツールが必要です。
Docker-Compose のデフォルトのプロジェクト構成ファイルは docker-compose.yml です。構成ファイルは、環境変数 COMPOSE_FILE または -f パラメーターを使用してカスタマイズでき、複数の依存サービスと各サービスの操作を定義します。 。 容器。
Dockerfile テンプレート ファイルを使用すると、ユーザーは別のアプリケーション コンテナを簡単に定義できます。仕事では、特定のタスクを完了するために複数のコンテナが相互に連携する必要がある状況によく遭遇します。たとえば、Web プロジェクトを実装するには、Web サービス コンテナ自体に加えて、バックエンド データベース サービス コンテナ、さらには負荷分散コンテナの追加が必要になることがよくあります。
よく使用されるコマンド
docker-compose
Compose の機能は「複数の Docker コンテナのアプリケーションを定義して実行する」ことです。 Compose を使用すると、アプリケーションのサービスを構成ファイル (yaml 形式) で構成し、単一のコマンドを使用して構成内で参照されるすべてのサービスを作成して開始できます。
Compose の 2 つの重要な概念:
• サービス (サービス): アプリケーション コンテナーには、実際には同じイメージを実行する複数のコンテナー インスタンスを含めることができます。
• プロジェクト: docker-compose.yml ファイルで定義された、関連するアプリケーション コンテナーのセットで構成される完全なビジネス ユニット。
GitHub リンク経由でダウンロードしてインストールします非 ROOT ユーザーは必ず sudo
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composeを追加してください
バイナリ ダウンロード ファイルに実行権限を与えます
sudo chmod +x /usr/local/bin/docker-compose
インストールするかどうかを確認する
docker-compose --version
アンインストール
バイナリパッケージとしてインストールされている場合は、バイナリファイルを削除するだけです
rm /usr/local/bin/docker-compose
compose docker-compose.yml eureka Dockerfile eureka-server-2.0.2.RELEASE.jar user Dockerfile user-2.0.2.RELEASE.jar power Dockerfile power-2.0.2.RELEASE.jar
Compose 使い方は非常に簡単で、docker-compose.ymlを記述し、docker-composeコマンドで操作するだけです。 docker-compose.yml はコンテナーの構成を記述し、docker-compose コマンドはコンテナーの操作を記述します。
1. マイクロサービス プロジェクトを使用して、最初に簡単な例を作成します。まず、compose 作業ディレクトリを作成し、次に jenkinsTest フォルダーを作成し、その中に実行可能 jar パッケージを置き、Dockerfile ファイルを作成します。ディレクトリ構造は次のとおりです。 :
jenkins は、テスト用にアップロードされた jar パッケージを保存します
docker-compose.yml
version: '3.1' #这里要指定docker-compose对应的docker版本 services: jenkinstest: #指定服务名 #image: jenkinstest #指定镜像名称 小写不然会报错 build: ./jenkinsTest #指定Dockfile所在路径 ports: - 8099:8099 #指定端口映射 expose: - 8099 #对外暴露的服务端口
Dockerfile ファイル
FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly #作者 MAINTAINER lkz # 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效 EXPOSE 8099 COPY jenkinsTest.jar 11.jar # 在镜像运行为容器后执行的命令 ENTRYPOINT ["java","-jar","11.jar"]
docker-compose up -d
構成は上記と同じです
docker-compose.yml ファイルを変更します
version: '3.3' services: eureka: image: eureka:v1 #指定镜像名称 build: ./eureka #指定Dockfile所在路径 ports: - 8080:8080 user: image: user:v1 build: ./user #指定Dockfile所在路径 ports: - 8081:8081 power: image: power:v1 build: ./power #指定Dockfile所在路径 ports: - 8082:8082
以上がdocker-compose イメージを使用して springboot プロジェクトを公開する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。