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データベースに保存し、フロントエンドページに表示するための実装コード

目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...

Ubuntu 19.10 で ssh サービスを有効にする (詳細なプロセス)

Ubuntuでsshを開くのに1時間以上かかりました。主な原因は、最初に読んだチュートリアルの手順...

Mybatis での動的 SQL ステートメント分析

この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...

MySQLの起動失敗の解決策

MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...

Vue でシンプルな無限ループスクロールアニメーションを実装する例

この記事では主に、Vue でシンプルな無限ループスクロールアニメーションを実装し、みんなで共有する例...

Vueにログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)

1. Java環境jdk1.8を準備するJavaがインストールされているかどうかを確認します。イン...

シンプルな計算機を実装するためのネイティブ js

この記事の例では、参考までに簡単な計算機を実装するためのjsの具体的なコードを共有しています。具体的...

Tomcat サービスに Java 起動コマンドを追加する方法

私の最初のサーバープログラム現在、オンラインゲームの書き方を学んでいるので、サーバーサイドのプログラ...

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

JS 非同期実行の原則とコールバックの詳細

1. JSの非同期実行の原則JavaScript はシングルスレッドですが、ブラウザはマルチスレッド...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

vite+vue3+element-plus プロジェクトをビルドする手順

viteを使用してvue3プロジェクトを構築するターミナルで次のコマンドを実行すると、Vite を使...

Vue3 の emitting と attr の違いの分析

目次結論は実践分析拡張機能要約する結論は親コンポーネントでカスタム イベントが定義されている場合、子...

docker-maven-pluginプラグインは対応するjarパッケージを取得できません

docker-maven-plugin プラグインを使用する場合、Maven は対応する jar パ...