Springboot プロジェクトの Docker-compose イメージリリースプロセス分析

Springboot プロジェクトの Docker-compose イメージリリースプロセス分析

導入

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、extends ファイル、環境変数ファイルなど) がプロジェクトを形成します。特別なプロジェクト名が指定されていない場合は、現在のディレクトリ名が使用されます。プロジェクトには複数のサービスを含めることができ、各サービスは実行中のコンテナのイメージ、パラメーター、依存関係を定義します。サービスには複数のコンテナ インスタンスを含めることができます。Docker-Compose では負荷分散の問題が解決されないため、サービス検出と負荷分散を実現するには他のツールが必要です。

Docker-Compose のデフォルトのプロジェクト構成ファイルは docker-compose.yml です。環境変数 COMPOSE_FILE または -f パラメータを使用して構成ファイルをカスタマイズできます。複数の依存サービスと各サービスを実行するコンテナを定義します。
Dockerfile テンプレート ファイルを使用すると、ユーザーは個別のアプリケーション コンテナーを簡単に定義できます。職場では、タスクを完了するために複数のコンテナが相互に連携する必要がある状況に遭遇することがよくあります。たとえば、Web プロジェクトを実装するには、Web サービス コンテナー自体に加えて、バックエンド データベース サービス コンテナー、さらには負荷分散コンテナーを追加する必要があることがよくあります。

一般的なコマンド

docker-compose

導入

Compose の役割は、「複数の Docker コンテナでアプリケーションを定義して実行すること」です。 Compose を使用すると、アプリケーションのサービスを構成ファイル (yaml 形式) で構成し、構成で参照されるすべてのサービスを 1 つのコマンドで作成して起動できます。
Compose には 2 つの重要な概念があります。
• サービス: アプリケーションのコンテナーには、実際には同じイメージを実行する複数のコンテナー インスタンスを含めることができます。
• プロジェクト: docker-compose.yml ファイルで定義された、関連するアプリケーション コンテナーのセットで構成される完全なビジネス ユニット。

Docker Composeのインストール

Compose をインストールする方法は多数あります。この記事では、シェル経由でインストールする方法について説明します。他の設置方法にご興味がございましたら、
公式の Docker ドキュメントを参照できます: https://docs.docker.com/compose/install/

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

ディレクトリ構造

作曲する
	ドッカーの作成
	ユーレカ
		Dockerファイル
		eureka-server-2.0.2.RELEASE.jar
	ユーザー
		Dockerファイル
		ユーザー 2.0.2.RELEASE.jar
	力
		Dockerファイル
		パワー 2.0.2.RELEASE.jar

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

ここに画像の説明を挿入

ドッカーの作成

version: '3.1' #ここでは、docker-compose サービスに対応する docker バージョンを指定する必要があります。
  jenkinstest: #サービス名を指定します#image: jenkinstest #イメージ名は小文字で指定します。そうしないとエラーが報告されますbuild: ./jenkinsTest #Dockfile が配置されているパスを指定しますports:
      - 8099:8099 #ポートマッピング公開を指定します:
      - 8099 #公開されたサービスポート

Dockerファイル

adoptopenjdk/openjdk8:jdk8u-centos-nightly より

#著者MAINTAINER lkz

# イメージによって公開されるポート。ポートを使用する場合は、docker run コマンド EXPOSE 8099 を実行するときに -p を使用して有効にします。
 
jenkinsTest.jar 11.jarをコピーする 
# イメージがコンテナとして実行された後に実行されるコマンド ENTRYPOINT ["java","-jar","11.jar"]

マイクロサービスを開始するには、パラメータ-dを追加してバックグラウンドで開始することができます。

docker-compose を起動 -d 

ここに画像の説明を挿入

Docker Compose を使用して SpringCloud マイクロサービスをオーケストレーションする

docker-compose.ymlファイルを上記のように修正します。

バージョン: '3.3'
サービス:
  ユーレカ:
    image: eureka:v1 #イメージ名を指定します build: ./eureka #Dockfileが配置されているパスを指定します ports:
     - 8080:8080
  ユーザー:
    画像: ユーザー:v1
    build: ./user #Dockfile が配置されているパスを指定します ports:
     -8081:8081
  力:
    画像: パワー:v1
    build: ./power #Dockfileが配置されているパスを指定しますports:
     -8082:8082

docker-compose イメージ公開 springboot プロジェクトのプロセス分析に関するこの記事はこれで終わりです。より関連性の高い docker-compose 公開 springboot プロジェクトのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker イメージを Docker Hub に公開する方法
  • IDEA2021.2 で docker を設定して、Springboot プロジェクトをイメージ化し、ワンクリックでリリースする方法
  • ローカルでビルドした Docker イメージを Dockerhub に公開する方法
  • 初めてDockerイメージを構築、実行、公開、取得するための詳細な手順
  • Docker を使用してローカルイメージを Alibaba Cloud に公開する方法

<<:  DHTML オブジェクト (さまざまな HTML オブジェクトの共通プロパティ)

>>:  MYSQL(電話番号、IDカード)データ非感応化の実装

推薦する

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

Vueのフロントエンドとバックエンドのポートの不一致の問題を解決する

Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

Element-ui レイアウト (行と列コンポーネント) の実装

目次基本的な手順と使用方法行コンポーネントの分析レンダリング機能ソースコード分析Col成分の分析コン...

3つの主要データベース(Mysql、SqlServer、Oracle)の違いについて簡単に説明します。

マイグレーションアドバンテージ:小型、高速、総所有コストが低い、オープンソース。複数のオペレーティン...

Linux の運用と保守で netstat の代わりに ss コマンドを使用する方法

序文Linux サーバーを操作および管理するときに、最もよく使用されるコマンドの 1 つが nets...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...

オペレーターが知っておくべき 18 個の Nginx プロキシ キャッシュ構成のヒント (どれを知っていますか?)

アプリケーションや Web サイトのパフォーマンスが成功の重要な要素であることは誰もが知っています。...

ウェブデザインにおけるキーワード設計手法の紹介

多くの場合、ホームページを作成するときに、Web ページ ヘッダー属性の設定を無視します。 Web ...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

IIS サーバーから apk ファイルをダウンロードする際の 404 エラーの解決策

最近、IIS をサーバーとして使用すると、apk ファイルがサーバーにアップロードされましたが、ダウ...

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します

1. 環境整備CentOS Linux リリース 7.5.1804 (コア)インストールフォルダを作...

CSS3 で実装された画像ホバートグルボタン

結果:実装コードhtml <ul class="スライド"> <...

MySQLはconnect_by_isleaf MySQLメソッドまたはストアドプロシージャに似た機能を実装します

最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...