Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

背景

docker とアイデアを使用して、Java Web の開発、展開、運用までのプロセス全体を実現します。
環境: 構成された docker、インストールされた mysql8 コンテナ、springBoot フレームワーク Web プロジェクト (簡単にテストできるように swagger を使用)

Dockerリモート接続を開く

オンライン方式では対応する docker.service ファイルが見つかりません。バージョンまたはインストール方法が異なっている可能性があります。
systemctl status docker を使用して、docker.service ファイルの場所を見つけます。

ここに画像の説明を挿入

/etc/systemd/system/docker.service ファイルを変更します。

#ExecStart=/usr/bin/dockerd
実行開始=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

Docker サービスを再起動します。

systemctlデーモンリロード 
systemctl docker.service を再起動します。

ポート 2375 が開いています:

ファイアウォールコマンド --zone=public --add-port=2375/tcp --permanent
ファイアウォール-cmd --reload

再起動後、ポート 2375 にアクセスできるかどうかを確認します。
http://192.168.137.188:2375/info

ここに画像の説明を挿入

注: これは成功を示します。

アイデア Docker プラグインの設定

idea 2019 バージョン 3 には docker が統合されています。統合されていない場合は、ご自身でインストールしてください。

ここに画像の説明を挿入

注: docker - 「+」をクリックした後、接続名とLinuxホストIPを入力します: docker外部ポート

idea を docker に接続し、関連するインターフェースで利用可能な操作を理解します。

ここに画像の説明を挿入

注: コンテナや基本イメージなどの一般的なコマンドを統合しています。具体的な使用方法は自分で学習できますが、難しくはありません。

SpringBootアプリケーションにDockerfileを追加する

ここに画像の説明を挿入

注: pom ファイルと同じディレクトリで、ファイルの内容は次のとおりです。

openjdk:8u212-jre から
メンテナー aliyu<[email protected]>

コピー target/myframe-0.0.1-SNAPSHOT.jar /myframe-0.0.1-SNAPSHOT.jar
エントリポイント ["java", "-jar", "/myframe-0.0.1-SNAPSHOT.jar"]

docker実行構成を追加する

ここに画像の説明を挿入

注意: 1. 「構成の編集」を右クリック
2. 「+」をクリックしてdockerを選択します
3. 先ほど定義したDocker接続を選択します
4. Dockerfileの名前
5. dockerfileのディレクトリの場所
6. プロジェクトイメージとバージョンの定義
7. イメージの作成後にコンテナを作成して実行できるように、ビルドイメージの実行をチェックし、コンテナに名前を付けます。
8. ホストとコンテナ間のポートマッピングを構成する
9. ランダム IP が原因で類似プロジェクトがサービスを見つけられないという問題を回避するために、コンテナーに固定 IP を設定します。固定 IP 設定については、http://blog.java1234.com/blog/articles/628.html を参照してください。
ps: mysql8 コンテナのデフォルトの IP アドレスは、ここの IP アドレスと同じネットワーク セグメントになるように構成されています。
10. ここでコマンドをプレビューしてエラーがないか確認できます。
11. docker run を設定して実行する前に、パッケージ化されたプロジェクトを再コンパイルする必要があります。

パッケージをクリーンアップ -U -DskipTest -P テスト

注: 開発中、ホストは Linux 内の MySQL コンテナにアクセスし、アプリケーションがコンテナ ランタイムとして生成されると、アプリケーション コンテナは MySQL コンテナにアクセスします。 yml 内の mysql 構成に一貫性がないため、docker デプロイメントにはテスト yml 構成ファイルが使用されます。 ps: コンテナが相互にアクセスするには、「その他 - コンテナ間の通信」タイトルを確認してください。作成後、次の内容が表示されます。

ここに画像の説明を挿入

注: 開始するにはもう1つのdockerFileが必要です

dockerスタートアップ構成を実行する

クリック:

ここに画像の説明を挿入

注: Maven クリーン パッケージングの完全なプロセスと、Docker によるイメージの構築、コンテナーの作成と起動のプロセスを確認できます。コンテナ起動プロジェクトのログも見ることができます

Swagger ホームページへのアクセスをテストします。

ここに画像の説明を挿入

他の

コンテナ間の通信

背景: コンテナが相互に通信する方法がわからないため、MySQL 接続を構成するときに、URL が常に間違っており、データベース接続の問題が常に報告されます。

ホスト IP とマップされたポートは、mysql8 コンテナにアクセスできます。
URL: jdbc:mysql://192.168.137.188:3307/db_myframe?serverTimezone=GMT

しかし、ホストIPとマップされたポートを介してmyframeコンテナにアクセスすると、コンテナ間の通信が異なるため失敗します。

localhost:3306 経由でアクセスすることはできません。Docker コンテナ内の localhost は、ホスト マシンの localhost を参照しません。

Dockerは実行時に仮想ネットワークカードを作成し、docker0という名前を付けます。
docker inspect mysql8 を使用して、IP アドレス 172.17.0.2 を見つけます。ただし、コンテナーにアクセスする場合、ポートはホスト上の 3307 にマップされたポートではなく、コンテナー内のポートである必要があることに注意してください。

Dockerイメージの展開と運用を素早く実現する最新のIDEAについての記事はこれで終わりです。関連するIDEA Dockerイメージの展開と運用コンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • IDEA2021.2 で docker を設定して、Springboot プロジェクトをイメージ化し、ワンクリックでリリースする方法
  • イメージのパッケージ化とワンクリック展開を実現するためにDockerを組み合わせたアイデア
  • Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

<<:  スネークゲームのアイデアを実現するためのJavaScript

>>:  SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

推薦する

Alibaba Cloud centos7にmysql8.0.22をインストールする詳細なチュートリアル

1. MySQLインストールパッケージをダウンロードするまず、https://dev.mysql.c...

VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...

CSS における px、rem、em、vh、vw の違いを簡単に分析します

絶対長さピクセルpx はピクセル値であり、メートルやセンチメートルのような固定の長さです。相対的な長...

MYSQL の 3 つのツリー構造テーブル設計の長所と短所の簡単な分析と共有

目次導入質問設計 1: 隣接リストテーブルデザインSQL の例デザイン 2: パスの列挙テーブルデザ...

サブセットかどうかを判断するためのMySQLメソッドの手順

目次1. 問題2. 解決策オプション1:オプション2: 1. 問題この話は、エラーと脱落率を照会する...

MySQL のインデックスとビューの使用方法と違いの詳細な説明

序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...

Vue で配列パラメータを渡すための get / delete メソッド

フロントエンドとバックエンドがやり取りする場合、get または delete を介してバックエンドに...

JS の new 関数の詳細な説明

目次1. 例2. 兵士100人を作成する3. 質問4. 改善点5. エレガント? 6. JSの父から...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

HTML ページ共通スタイル (推奨)

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピーbody、di...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

vue3で注意すべき2つのポイントを詳しく解説:セットアップ

目次vue2の場合vue3ではセットアップに関する注意事項セットアップライフサイクルは、before...