SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)

SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)

最近友人からDockerを触ったことがあるかと聞かれました。あまり自信がなかったので答えられませんでした^ - ^(クラウドをいじり始めた頃に出会って、しばらくいじって、その後は実際の開発ではほとんど使わなかったので、ほぼ忘れていました。)、今日は以前のメモを整理したり、プロセスを整理したりして時間を過ごしました。次回いじったときにCVできるように記録しておきます〜

1. Dockerをインストールしてリモートアクセスを有効にする

1.1 インストール

# 仮想マシンのカーネルバージョンを確認します。3.10 以上である必要があります uname -r
# Dockerをインストールする
yumでdockerをインストール
# インストールを確認するにはyと入力してください# Dockerを起動します
systemctl ドッカーを起動する
# dockerのバージョンを確認する docker -v
# 起動時にDockerを起動する
systemctl ドッカーを有効にする
# Dockerを停止する
systemctl ドッカーを停止する
# Dockerを再起動
systemctl dockerを再起動します

1.2 リモートアクセスを有効にする

docker.serviceファイルを変更する

vim /usr/lib/systemd/system/docker.service

ExecStart行を変更する
#ExecStart=/usr/bin/dockerd -H fd://--containerd=/run/containerd/containerd.sock
実行開始=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

# 設定ファイルをリロードする systemctl daemon-reload 
# サービスを再起動します systemctl restart docker.service 
# ポートが開いているか確認します(Alibaba Cloud などのサーバーの場合は、「セキュリティ」->「ファイアウォール」でポート 2375 を開く必要があります)
ネットスタット -nlpt
# 有効かどうか確認 curl http://127.0.0.1:2375/info

2. IDEAはdockerプラグインをインストールし、接続します

2.1 プラグインのインストール

これは非常に簡単で、ステップごとにスクリーンショットを撮っただけです。 。 。 (これは誰ですか?IDEAの中国語版はどのように使用すればいいですか?)

ここに画像の説明を挿入

2.2 Dockerに接続する

ここに画像の説明を挿入

3. jar パッケージをパックし、Dockerfile を記述します。jar パッケージのパックについてはここでは説明しません。 。 。 Dockerfileを書き、下線部分に注意して修正する

ここに画像の説明を挿入

java:8より
# メンテナー情報 MAINTAINER houyu
# ここでの /tmp ディレクトリは実行時に匿名ボリュームとして自動的にマウントされ、/tmp に書き込まれた情報はコンテナストレージ層 VOLUME /tmp に記録されません。
# コンテキストディレクトリの /build/libs/fastboot-0.0.1.jar をコンテナにコピーします COPY /build/libs/fastboot-0.0.1.jar fastboot-0.0.1.jar
# fastboot-0.0.1.jar にアクセスできるようにするには、bash モードで実行します。# RUN 新しいレイヤーを作成し、そのレイヤーでこれらのコマンドを実行します。実行が完了したら、このレイヤーへの変更をコミットして、新しいイメージを形成します。
bash -c "touch /fastboot-0.0.1.jar" を実行します。
# タイムゾーンを指定します # ENV TZ='Asia/Shanghai'
# ランタイム コンテナーによって提供されるサービス ポートを宣言します。これは単なる宣言です。この宣言により、アプリケーションは実行時にこのポートのサービスを開きません。EXPOSE 10007
#コンテナの起動プログラムとパラメータを指定します <ENTRYPOINT> "<CMD>"
エントリポイント ["java","-jar","fastboot-0.0.1.jar", "--spring.profiles.active=prod"]

4. IDEA構成ビルドイメージ

4.1 実行スクリプトを構成する

ここに画像の説明を挿入

4.2 スクリプトを実行する

ここに画像の説明を挿入

5. ホストはイメージをチェックし、展開が成功したことを確認します。

ここに画像の説明を挿入

6. 複数のインスタンスをデプロイする

具体的なコマンドは以下のとおりです。

ここに画像の説明を挿入

操作スクリプト

# Docker イメージを表示
# インストールされたコンテナを表示する docker ps -a
# c1726e8f3819 イメージをクローンし、fb1.2 コンテナとしてインストールします # -d: バックグラウンドで実行します # -p: ホスト ポートをコンテナ内のポートにマップします ホスト ポート: コンテナ内のポート docker run --name fb1.2 -d -p 10008:10007 c1726e8f3819 
# インストールされたコンテナを表示する docker ps -a 
# 実行中のコンテナを表示する docker ps 
# fb1.1 を検証
カール 127.0.0.1:10007 
# fb1.2 を検証
カール 127.0.0.1:10008

よく使われるdockerコマンド(プライベートwine)

1) イメージ操作 (https://hub.docker.com/)

1. 画像のタグなど、画像に関する詳細情報を取得します。
docker search image キーワードの例: docker search redis
2. イメージをプルします (:tag はオプションです。tag はラベルを意味し、ほとんどの場合ソフトウェアのバージョンで、デフォルトは最新です)
プルを高速化するには、docker pull registry.docker-cn.com/library/redis:5.0.3 を実行します。
docker pull アクセラレーション アドレス + イメージ名: タグ、例: docker pull redis:5.0.3
3. すべてのローカル画像を表示
Docker イメージ
4. 指定したローカルイメージを削除する
docker rmi イメージ ID または名前 (例: docker rmi Tomcat)
5. 画像の名前を変更する
docker tag IMAGEID (イメージID) REPOSITORY:TAG (ウェアハウス: タグ)

2) コンテナ操作(ソフトウェアイメージ ---- 実行イメージ ---- コンテナの生成)

1. 画像を検索する
docker 検索 tomcat
2. イメージをプルします (:tag はオプションです。tag はラベルを意味し、ほとんどの場合ソフトウェアのバージョンで、デフォルトは最新です)
docker pull tomcat:最新
3. イメージに従ってコンテナを起動します(最新のタグは省略できますが、他のタグを追加する必要があります)
-d: バックグラウンドで実行
-p: ホストポートをコンテナ内のポートにマッピングします。ホストポート: コンテナ内のポート
docker run --name alias -d host port: コンテナ内のポート リポジトリ/イメージ ID
例えば: docker run --name mytomcat -d 8080:8080 tomcat:latest
3.1 コンテナの再起動
docker コンテナ名/ID を再起動します
4. 実行中のコンテナを表示する
ドッカーps
5. インストールされているすべてのコンテナを表示する
ドッカーps -a
6. 実行中のコンテナを停止する
docker stop コンテナ ID/名前
7. コンテナを起動する
docker コンテナ ID/名前の開始
8. コンテナを削除する
docker rm コンテナ ID/名前
9. コンテナログを表示する
docker は container-name/container-id (コンテナ名またはコンテナ ID) をログに記録します。
10. 指定されたコンテナスペースに入る
docker exec -it コンテナ名/ID /bin/bash
例えば: docker exec -it tensquare_es /bin/bash

7. セキュリティ上の問題から、オンライン環境でDockerリモートアクセスを有効にしないでください。そうしないと、ミートマシンとして扱われる可能性があります。

詳細については、「Docker がポート 2375 を公開しているためにサーバーが攻撃される問題を解決する方法」をお読みください。

SpringBoot のパッケージングと docker へのアップロードについて簡単に解説し、マルチインスタンス デプロイメントを実現する方法についての記事はこれで終わりです (IDEA 版)。Spring Boot のパッケージングと docker へのアップロードに関するその他の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • アイデアを通じてプロジェクトをDockerにパッケージ化する方法
  • イメージのパッケージ化とワンクリック展開を実現するためにDockerを組み合わせたアイデア
  • DockerをIDEAに統合してパッケージングを実現する方法

<<:  jsはショッピングカートの加算と減算、価格計算機能を実現します

>>:  ストアド プロシージャでエラー状態をトリガーする mysql ストアド プロシージャの分析例 (SIGNAL および RESIGNAL ステートメント)

推薦する

MySQL の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

Linux/Mac MySQL パスワードを忘れた場合のパスワード変更コマンドラインメソッド

すべての前提条件にはルート権限が必要です1. MySQLプロセスを終了する //Linux sudo...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

Centos7.9 で独立したメール サーバーを構築するための詳細な手順

目次序文1. イントラネットDNS AレコードとMXレコードを構成する2. メールサーバの初期化設定...

DockerとVMwareの競合を解決する

1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...

MySQL でのインデックスの追加と削除に関連する操作

目次1. インデックスの役割2. インデックスの作成と削除(1)ALTER TABLE文を使用して、...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

js オブザーバーモードの紹介と使用

目次定義2. 使用シナリオ3. 例を挙げる4. コーディング定義オブザーバー パターンは 1 対多の...

レスポンシブ Web デザインが価値のない 5 つの理由

この記事は Tom Ewer の Managewp ブログからのもので、現在人気のレスポンシブ デザ...

Vue3 がコンポーネント通信に mitt を使用する手順

目次1. インストール2. プロジェクトにインポートしてマウントする3. 使用Vue2.x はコンポ...

JavaScript 即時実行関数の使用状況分析

一般的に、関数は実行する前に呼び出す必要があることはご存じのとおりです。以下に示すように、関数を定義...

HTML タグ sup と sub の応用の紹介

HTML タグ: 上付き文字HTML では、<sup> タグは上付き文字のテキストを定義...