IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

例示する

これまでは、イメージの取得やコンテナの作成など、Docker の学習には手動でコマンドを入力して実装する必要がありました。しかし、idea の Docker プラグインを使用すると、コマンドを入力しなくても Docker を操作できます。idea ツールは本当に強力だと言わざるを得ません。 ! !この記事は継続的に更新され、拡張されます

この記事は学習トラックの記録のみを目的としています。著作権侵害がある場合は、削除するためにご連絡ください。

注: 通常はサーバーを使用します。ここではテストとして仮想マシン + Ubuntu システムを使用します。

1. Dockerリモートアクセスを有効にする

アイデアエディタを使用すると、dockerプラグインを使用して、サーバー(仮想マシン)上のdockerをリモートで使用できます。dockerの使用は簡単で便利で高速です。さらに重要なのは、プラグインによりプロジェクトのワンクリック展開が実現できることです。もちろん、これにはいくつかの簡単な設定も必要です。
デフォルトの Docker はリモート アクセスをサポートしていません。Docker へのリモート アクセスを有効にするには、いくつかの構成を追加する必要があります。

#Dockerサービスファイルを変更するには、ルートユーザーに切り替える必要があります vim /lib/systemd/system/docker.service
#「ExecStart」行をコメントアウトし、次の行を追加します。ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

ここに画像の説明を挿入

設定ファイルを再読み込みする

#設定ファイルをリロードする systemctl daemon-reload
#サービスを再起動します systemctl restart docker.service
#設定されたポート番号(2375)が有効になっているかどうかを確認します(オプション)
netstat -nlpt #netstatコマンドが見つからない場合は、まずこのツールをインストールしてください。詳細については、Baiduをご覧ください。 

ここに画像の説明を挿入

注: 上記のプロセスが失敗した場合でも、それを実行する方法があります。

まず、ポート番号が開いていることを確認してください。これは非常に重要です。 ! !デフォルトのポート番号は2375です

ルートユーザーに切り替え、コマンド: sudo su

Docker 関連の設定を編集します。
コマンド: vim /lib/systemd/system/docker.serviceで編集ページに入ります

ここに画像の説明を挿入

ExecStart に対応する行を見つけて、コードを追加します: -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock (「i」キーを押して編集モードに入り、データを追加できます)

ここに画像の説明を挿入

保存して終了するには、まず「esc」キーを押してから、コマンド: :wqを入力し、Enter キーを押して保存します。

Dockerサービスデーモンを再起動します: sudo systemctl daemon-reload
docker サービスを再起動します: sudo systemctl restart docker

ポート番号2375が開いているか確認します。以下の図が表示されれば成功です。

ここに画像の説明を挿入

2. Dockerに接続する

idea の docker プラグインを使用して docker に接続します。idea はデフォルトで docker プラグインをダウンロードしています。ダウンロードされていない場合は、idea で docker プラグインをダウンロードする必要があります。

ここに画像の説明を挿入

アイデアの設定オプション(ファイル -> 設定 -> docker)をクリックして、新しい接続を作成します。

ここに画像の説明を挿入

ここに画像の説明を挿入

接続が成功したら、サーバー(仮想マシン)上でdockerを使用できます。

ここに画像の説明を挿入

3. イメージを取得する

Ideaは自分でコマンドを入力しなくても視覚的に画像を取得できます

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

プルタイムがタイムアウトになる場合があります。 Alibaba Cloud アクセラレータを取得するには、国内イメージを構成する必要があります。

ここに画像の説明を挿入

4. コンテナの作成と操作

Dockerコンテナを作成して実行する

ここに画像の説明を挿入

ここに画像の説明を挿入

作成が成功すると、新しく作成されたコンテナを確認したり、dockerコマンドを使用してサーバー(仮想マシン)上で確認したりできます。

ここに画像の説明を挿入

コンテナの再起動、停止、削除

ここに画像の説明を挿入

5. DockerでのSpringbootプロジェクトのワンクリックデプロイ

従来の Docker で Springboot プロジェクトをデプロイするには、Dockerfile ファイルを手動で構成し、生成された jar パッケージを Dockerfile ファイルと一緒にサーバーにアップロードする必要があります。このプロセス全体は非常に面倒です。idea docker プラグインを使用すると、ワンクリックで Springboot プロジェクトをデプロイできるため、シンプルで便利です。

まず、dockerビルドツールを導入する必要があります

    <ビルド>
        <!-- プロジェクト名を引用 -->
        <finalName>${プロジェクト.アーティファクトId}</finalName>

        <プラグイン>
            <プラグイン>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </プラグイン>


            <!--docker-maven-plugin プラグインを使用する-->
            <プラグイン>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <バージョン>1.0.0</バージョン>
                <!-- プラグインを特定のフェーズにバインドして実行します -->
                <処刑>
                    <実行>
                        <id>ビルドイメージ</id>
                        <!-- ユーザーは mvn package を実行するだけで、mvn docker:build が自動的に実行されます -->
                        <phase>パッケージ</phase>
                        <目標>
                            <goal>ビルド</goal>
                        </目標>
                    </実行>
                </処刑>

                <構成>
                    <!-- 生成された画像名を指定します。ここでは著者名 + プロジェクト名を指定します -->
                    <imageName>cainiao/${project.artifactId}</imageName>

                    <!--ここでタグを指定してイメージのバージョンを指定します。デフォルトのバージョンは最新です-->
                    <画像タグ>
                        <imageTag>最新</imageTag>
                    </画像タグ>

                    <!--ベースイメージ jdk1.8 を指定します-->
                    <baseImage>java</baseImage>
                    <!--
                    画像制作者の個人情報 <maintainer>[email protected]</maintainer>
                    -->
                    <!--ROOT ディレクトリに切り替えます-->
                    <作業ディレクトリ>/ROOT</作業ディレクトリ>

                    <!-- Java バージョンを確認してください -->
                    <cmd>["java", "-version"]</cmd>

                    <!--${project.build.finalName}.jar はパッケージ化後に生成される jar パッケージの名前です -->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

                    <!-- リモート Docker API アドレスを指定します -->
                    <dockerホスト>http://192.168.29.133:2375</dockerホスト>

                    <!-- 以下は、jar パッケージを docker コンテナの指定されたディレクトリにコピーするための構成です -->
                    <リソース>
                        <リソース>
                            <ターゲットパス>/</ターゲットパス>
                            <!--jar パッケージが配置されているパスはターゲット ディレクトリに対応します -->
                            <ディレクトリ>${project.build.directory}</ディレクトリ>
                            <!-- コピーするファイルに含める必要がある jar パッケージを指定するために使用します。これは Dockerfile に追加されたファイル名に対応します -->
                            <include>${project.build.finalName}.jar</include>
                        </リソース>
                    </リソース>

                </構成>
            </プラグイン>
        </プラグイン>
    </ビルド>

OK、次に「クリーン」をクリックして、以前にパッケージ化されたすべてのファイルをクリアし、「パッケージ」をクリックしてイメージの構築を完了します。これは、実際のワンクリック展開です。

ここに画像の説明を挿入

ここに画像の説明を挿入

これでイメージは正常に構築されました。次はコンテナを作成して実行するだけです。

ここに画像の説明を挿入

ここに画像の説明を挿入

IP経由でアクセス

ここに画像の説明を挿入

この時点で、Springboot プロジェクトのワンクリック構築とデプロイは成功しました。

考えられるエラー:

「java.lang.NoClassDefFoundError:javax/activation/DataSource」(tomcat 9.0.12)」

ネットで調べたらこの文章を見つけました。詳しくはこちらをご覧ください。

ここに画像の説明を挿入

このプロジェクトは以前は jdk8 で開発されていましたが、現在は jdk11 を使用しているため、ビルド中にこの問題が発生することを思い出しました。この問題が原因であると思われます。ビルドは成功し、実行やアクセスに問題はありませんが、 docker の開発とビルドを行う際には、jdk のバージョンを一定に保つことをお勧めします。

これで、IDEA 用 Docker プラグインの使用 (初心者向けチュートリアル) に関するこの記事は終了です。IDEA 用 Docker の使用に関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • アイデアはDockerプラグインを使用してワンクリックの自動デプロイを実現します
  • Docker プラグインを使用して IDEA のクラウド サーバーにプロジェクトをリモートでデプロイする方法
  • IDEA が Docker プラグインを統合した後のログの文字化けの問題を解決
  • IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル
  • IntelliJ IDEA に Docker プラグインをインストールする詳細な手順 (2018 バージョン)

<<:  フロントエンド開発における一般的なテクニックのまとめ

>>:  Vueはシンプルなメモ帳機能を実装します

推薦する

MySQL はエンタープライズレベルのログ管理、バックアップ、リカバリの実践的なチュートリアルを実装します

背景事業が発展するにつれ、会社の事業内容や規模は拡大し続け、ウェブサイトには大量のユーザー情報やデー...

CSS 背景画像を設定するための 6 つの興味深いヒント

background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

仮想マシンを作成し、VMware に Redhat Linux オペレーティング システムをインストールする (グラフィック チュートリアル)

VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...

VUE無限レベルツリーデータ構造表示の実装

目次コンポーネントの再帰呼び出しレンダリングメソッドの使用プロジェクトに取り組んでいると、左側のメニ...

MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル (win10)

この記事では、MySQL 5.7.20のインストールと設定方法を参考までに紹介します。具体的な内容は...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

Vue3 リストインターフェースデータ表示の詳細

目次1. リストインターフェースの表示例2. データを表示する2.1. コンポーネントがリストに表示...

VSCode と SSH を使用したリモート開発

0. リモート開発が必要な理由組み込み Linux を開発する場合、便宜上、通常は Windows ...

HTML ヘッド構造

以下では、よく使われるヘッド構造と、各タグや要素の意味や使用シーンを紹介します(この記事は、Yisi...

知らないかもしれない奇妙で興味深いDockerコマンド

はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...

MySQL のマスター スレーブ レプリケーション オプションをオンラインで変更する方法

序文: MySQL で最も一般的に使用されるアーキテクチャは、マスター スレーブ レプリケーションで...

dockerでPostgreSQLを実行する方法

1. Dockerをインストールします。参考URL: Docker 入門インストールチュートリアル ...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

jQuery を使用して、iframe 下の無効なページ アンカー ポイントの問題を修正する

適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...