ホームページ  >  記事  >  Java  >  docker-compose イメージを使用して springboot プロジェクトを公開する方法

docker-compose イメージを使用して springboot プロジェクトを公開する方法

王林
王林転載
2023-05-11 10:13:051142ブラウズ

はじめに

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 ファイルで定義された、関連するアプリケーション コンテナーのセットで構成される完全なビジネス ユニット。

docker compose のインストール手順

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

Example

Compose 使い方は非常に簡単で、docker-compose.ymlを記述し、docker-composeコマンドで操作するだけです。 docker-compose.yml はコンテナーの構成を記述し、docker-compose コマンドはコンテナーの操作を記述します。
1. マイクロサービス プロジェクトを使用して、最初に簡単な例を作成します。まず、compose 作業ディレクトリを作成し、次に jenkinsTest フォルダーを作成し、その中に実行可能 jar パッケージを置き、Dockerfile ファイルを作成します。ディレクトリ構造は次のとおりです。 :
jenkins は、テスト用にアップロードされた jar パッケージを保存します

docker-compose イメージを使用して springboot プロジェクトを公開する方法

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"]

Start microサービス。パラメーター -d を追加してバックグラウンドで開始できます。

docker-compose up -d

docker-compose イメージを使用して springboot プロジェクトを公開する方法

Docker Compose を使用して SpringCloud マイクロサービスをオーケストレートします。

構成は上記と同じです
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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。