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行のデータに対して加算、減算、乗算、除算の演算を実行します。

推薦する

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

目次DockerファイルドキュメントJenkins の設定Spring Boot プロジェクトでは、...

MySQL パスワードは正しいが、ローカルにログインできない -1045

MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...

CentOS7環境にMySQL5.5データベースをインストールする

目次1. 現在のシステムにMySQLがインストールされているかどうかを確認する2. インストールされ...

nginxリバースプロキシwebSocket設定の詳細な説明

最近、プロジェクトで作業しているときに webSocket プロトコルを使用し、WeChat アプレ...

IE6のバグと修正は予防戦略です

元記事:究極の IE6 チートシート: 25 以上の Internet Explorer 6 のバグ...

画像を使用してハイパーリンクのパーソナライズされた下線を実現します

画像内に下線付きのリンクが表示されても驚かないでください。実はとても簡単なので、あなたにもできるので...

デザイン理論: なぜ私たちは間違った場所を見ているのでしょうか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

nginx リバース プロキシでの proxy_pass の実装

フォーマットはシンプルです: proxy_pass URL; URL には、送信プロトコル (htt...

JSフロントエンドモジュール化のいくつかの仕様についての簡単な説明

目次序文フロントエンドモジュール開発の価値厄介な名前の競合面倒なファイル依存関係モジュール化の利点C...

Vue+Spring Bootで検証コード機能を実現

この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...

Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

nGrinderとは何ですか? nGrinder は、スクリプトの作成、テストの実行、監視、結果レポ...

MySQLデータベースの基本構文と操作

MySQLデータベースの基本構文DDL操作データベース作成構文: create database デ...

MySQL 8.0 の新機能 - チェック制約の紹介

目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...