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

推薦する

Vueバスの簡単な使い方

Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...

MySQL 外部キー制約の無効化と有効化コマンド

MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...

nginxのインストールと設定の詳細なプロセス記録

目次1 nginxの紹介1 nginxとは何か2 つのアプリケーション シナリオ2 nginxのイン...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...

Ubuntu環境にAnaconda3をインストールするための完全な手順

目次Anaconda の紹介1. ダウンロード1.1 インストールパッケージを保存するフォルダを作成...

jQueryはショッピングカート機能を実装します

この記事の例では、ショッピングカート機能を実装するためのjQueryの具体的なコードを参考までに共有...

MySQLオンラインDDL gh-ostの使用の概要

背景: DBA として、大規模なテーブルの DDL 変更のほとんどは、Percona の pt-on...

アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)

Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...

大きなオフセットによる MySQL 制限ページングが遅い理由と最適化ソリューション

MySQL では通常、limit を使用してページ上のページング機能を完了しますが、データ量が大きな...

HTMLシールドの右クリックメニューと左クリック入力機能の例

右クリックメニューを無効にする <body oncontextmenu=self.event....

Linux環境でユーザーにsudo権限を追加する方法

sudo 設定ファイルsudo のデフォルトの設定ファイルは /etc/sudoers です。一般的...

Windows 10 システムに mysql-8.0.13 (zip インストール) をインストールする詳細なチュートリアル

インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

Docker コンテナのタイムゾーン エラーの問題

目次背景質問問題分析と解決策新たな問題問題分析と解決策背景node-schedule スケジュール ...