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カード)データ非感応化の実装

推薦する

Navicat を仮想マシン MySQL に接続する際によくあるエラーと解決策

質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...

JavaScript の組み込みオブジェクト 数学と文字列の詳細な説明

目次数学オブジェクト共通プロパティ一般的な方法Math.random()文字列メソッド長さプロパティ...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

vue-router 履歴モード サーバー側設定プロセス記録

歴史ルート履歴モードとは、HTML5 の履歴 API を使用してクライアント側ルーティングを実装する...

docker-compose ポートと expose の違いの詳細な説明

docker-compose でコンテナ ポートを公開する方法は、ports と expose の ...

uniapp エントリーレベル nvue クライミングピット記録の分析

目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...

MySQL はどのようにしてマルチバージョンの同時実行性を実現するのでしょうか?

目次MySQL マルチバージョン同時実行1. マルチバージョン同時実行制御1. 一貫した読み取り2....

Nginx ドメイン転送の使用シナリオ コード例

シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

MySQL サービスを起動できない問題の解決策を含む MySQL 5.7.17 インストール チュートリアル

.net 開発に関しては、Microsoft の SQL Server データベースに精通しており、...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

フォームのmethod=post/getの違い

フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方...

Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコ...

deepin20 で NVIDIA クローズドソース ドライバーをインストールするための詳細な手順

ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...