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 で sum 関数を使用する例のチュートリアル

導入今日は、MySQL の sum 関数の使い方を紹介します。この関数は、MySQL データベースを...

mysql での rpm インストールの詳細な説明

インストールとアンインストールの表示 # rpm -qa | grep mysql を表示 # アン...

Vue はトークンを取得してトークン ログインのサンプル コードを実装します

ログイン認証にトークンを使用する考え方は次のとおりです。 1. 初めてログインする場合、フロントエン...

MySQL 8.0 Windows zip パッケージ版の詳細なインストール手順

MySQL 8.0 Windows zipのインストール手順は次のように紹介されています。準備する:...

Vue 名前付きスロットの基本的な使用例

序文名前付きスロットは、スロット内の「name」属性を使用して要素にバインドされます。知らせ: 1....

CSS を使用して複数の方法で等幅レイアウトを実装するサンプルコード

この記事で説明する等幅レイアウトでは、純粋な CSS を使用して、要素の幅を手動で設定することなく、...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

Dockerが新しいイメージをロードした後にリポジトリとタグ名が両方ともnoneになる問題を解決する

次のコマンドを使用できます: docker tag [イメージID] [名前]:[バージョン]例えば...

docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル

概要港とは何ですか?英語の単語の意味は「港」です。 Harborはコンテナ(貨物)を保管するために使...

MySQL 5.7.18 MSI インストール グラフィック チュートリアル

この記事では、参考までにMySQL 5.7.18 MSIインストールチュートリアルを紹介します。具体...

VMware のインストールと使用時の問題と解決策

仮想マシンは使用中であるか、接続できません次のようなエラーが報告された場合解決まずこのページにアクセ...

CentOS6.9 での MySQL 5.7.17 のインストールと設定のチュートリアル

CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...

LED を使って Linux カーネルを使い始める方法を探る

目次序文LEDトリガー探索を始めるLEDデバイス登録LEDディレクトリ類推によって理解するクラスディ...

ウェブページ作成の基本宣言文書型記述(DTD

CSS レイアウトを使用して WEB 標準に準拠した Web ページを作成することは、jb51.ne...

CSS3で実装された水平ヘッダーメニュー

結果:実装コードhtml <nav class="dropdownmenu"...