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

推薦する

npm 淘宝ミラー変更説明

1. トップレベルの使用法1. cnpmをインストールする npm i -g cnpm --regi...

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

KTLツールはMySQLからMySQLへのデータの同期方法を実現します

ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...

親コンテナの CSS 均等分割 (完全三分の一) の実装

親コンテナの幅は固定されています。子要素が親の幅を均等に分割するには、どのような方法がありますか?コ...

Vueのprops設定の詳細な説明

<テンプレート> <div class="demo">...

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...

Tomcat 例外の解決方法 (リクエスト ターゲットに無効な文字が見つかりました。有効な文字は RFC 7230 および RFC 3986 で定義されています)

1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

SQL ストアド プロシージャの取得、データ取得、プロセス分析

この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...

Docker に fastdfs イメージをインストールする際の注意事項

1. Docker環境を準備する2. fastdfsイメージを検索する 3. イメージをプルするdo...

docker compose を使用して fastDFS ファイル サーバーを構築する方法

前回の記事では、docker compose を使用して FastDfs ファイル サーバーをインス...

Nginx における 2 つの現在の制限方法についての簡単な説明

負荷は通常、システム設計時に予測されます。システムがパブリック ネットワークに公開されている場合、悪...