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

推薦する

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

vue 要素 el-transfer にドラッグ機能を追加

コア資産管理プロジェクトでは、el-transfer にドラッグ アンド ドロップによる並べ替えと、...

進捗バー効果を実現するJavaScript

この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

Nginx で 403 forbidden を解決するための完全な手順

ウェブページに403 Forbiddenと表示されるNginx (yum インストール ログは通常 ...

Ubuntu 18.04 システムでの Redis および phpredis 拡張機能のインストールと設定の詳細な説明

この記事では、Ubuntu 18.04 に Redis と phpredis 拡張機能をインストール...

32 典型的な列/グリッドベースのウェブサイト

列ベースの Web デザインのインスピレーションをお探しの場合は、32 個のクラシックな列/グリッド...

JSはGMTとUTCのタイムゾーンを完全に理解しています

目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...

CSSアニメーションがJSによってブロックされるかどうかについての簡単な議論

CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...

spring-boot と docker-java に基づいて Docker コンテナの動的な管理と監視を実装します [完全なソース コードのダウンロード付き]

Docker入門Docker はオープンソースのアプリケーション コンテナ エンジンです。従来の仮...

Vue サーバーに js 構成ファイルをインポートする方法

目次背景成し遂げるvue-cli2.0での設定方法の補足要約する背景プロジェクトにはローカル構成ファ...

CentOS 8 に htop をインストールする方法のチュートリアル

システムをインタラクティブに監視したい場合は、htop コマンドが最適な選択肢の 1 つです。 ht...

K8Sの高度な機能を理解するための記事

目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...

WeChatアプレットを少なく使う方法(最適な方法)

序文私は less/sass を書くことに慣れていますが、小さなプログラムを開発するときには、まだ ...

MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...