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

推薦する

Centos7でのMySQLインストールチュートリアル

MySQLインストールチュートリアル、参考までに具体的な内容は次のとおりです。 1. ダウンロードY...

MySQLリモートアクセスの設定方法をステップバイステップで説明します

序文MySQL データベースを使用する場合、クライアントはデータベース サーバーにリクエストを送信す...

JavaScript 操作要素の例

操作要素の詳細については、前回の記事を参照してください。JavaScript WebAPI、DOM、...

Dockerは複数のポートマッピングコマンドを有効にします

次のように: docker run -d -p 5000:23 -p 5001:22 --name ...

Vue3ナビゲーションバーコンポーネントのカプセル化実装方法

参考までに、Vue3でナビゲーションバーコンポーネントをカプセル化し、スクロールバーのスクロールに合...

JSタイマーを使用して要素を移動する

JS タイマーを使用して、要素に移動する効果のあるメソッドを作成します。実装のアイデアは、まず要素の...

Linuxで現在のスクリプトの実際のパスを取得する方法

1. 現在のスクリプトの実際のパスを取得します。 #!/bin/bash if [[ $0 =~ ^...

MySQLのGROUP BYステートメントを最適化する方法

MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...

MySQLインスタンスを安全にシャットダウンする方法

この記事では、mysqld プロセスをシャットダウンするプロセスと、MySQL インスタンスを安全か...

Vue 折りたたみ表示の複数行テキスト コンポーネントの実装コード

折りたたみ表示の複数行テキストコンポーネント複数行のテキスト コンポーネントを折りたたんで表示し、展...

CSS3 は、跳ねるボール効果を実現する Web アニメーションを作成します。

基本的な準備この実装には、クラス名が ball である単純な div が必要です。 HTMLコード:...

デザイン協会: なぜ間違った場所を探したのですか?

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

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...

オブジェクトのプロパティを反復処理する際の TypeScript の問題

目次1. 問題2. 解決策1. オブジェクトをanyとして宣言する2. オブジェクトのインターフェー...

フロントエンドエンジニアが作ったクールなインタラクティブウェブサイトを推薦します

ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...