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はシンプルなメモ帳機能を実装します

推薦する

Vue.jsは9グリッド画像表示モジュールを実装します

Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

要素テーブルからヘッダーを削除する方法

show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

Vue3 Vue イベント処理ガイド

目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...

Tomcat のパフォーマンス最適化方法の簡単な概要

Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

Vue ベースの円形スクロールリスト機能を実装する

注: 親コンテナーに高さと :data='Array' および overfolw:h...

nginx で第 3 レベルドメイン名を設定する方法の例

問題の説明nginx を設定することで、異なるポートを介して異なる Web アプリケーションにアクセ...

この記事ではSQL CASE WHENの使い方を詳しく説明します

目次シンプルな CASEWHEN 関数:これは、CASEWHEN 条件式関数を使用するのと同じです。...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...

MySQL はリレーショナルデータベースですか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...

チャットバブル効果を実現するCSS

1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...

tomcat9.exeをクリックするとクラッシュする問題を解決する方法

ある読者から連絡があり、ダウンロードが終了し、操作がまだ開始されていないのに、なぜ Tomcat の...