始める前に クラウドサーバーを持っています。私のはTencent Cloud Server (CentOS7)です。 Tencent Cloud ServerはDockerをインストールします。私のバージョンはDocker 19.03.9です。イメージアクセラレータのインストールと構成の詳細については、私の別のブログ投稿を参照してください:https://www.jb51.net/article/188048.htm、詳細な説明があります。 IDEAはWindowsにインストールされています 正式に仕事開始 ステップ 1: Docker を構成し、リモート アクセスを有効にします (注: これは学習の参考用です。実際の運用環境では、セキュリティ上の大きなリスクが生じるため、絶対に許可されません)。デフォルトのポートは 2375 ですが、他のポートに変更することもできます。 1. /lib/systemd/system/docker.serviceファイルを変更する
変更後は、保存して終了するコマンドを忘れずに記述してください: wq 2. 設定ファイルを再読み込みし、Dockerを再起動して設定を有効にします。 #設定ファイルをリロードする systemctl daemon-reload #dockerサービスを再起動します systemctl restart docker 3. curlコマンドを使用して有効になっているかどうかを確認します。 #curl docker サービス情報をダウンロード curl http://127.0.0.1:2375/info return文があれば起動が成功したことが証明され、Dockerのバージョン、イメージアクセラレータのアドレスなどの情報を確認できますが、この時点ではリモートアクセスはまだ利用できない可能性があります。 4. Tencent Cloudのセキュリティグループルールを設定し、受信ルールでポート2375を開いてリモートアクセスを有効にします(Alibaba Cloudと同じ)。 最後に「完了」をクリックすればOKです 5. ポートがリモートからアクセスできるかどうかを確認します。ローカルブラウザに次のように入力します: http://サーバIPアドレス:2375/info ステップ2: プロジェクトを構成してリモートDockerに接続する 1. Docker プラグインをインストールします。プラグインに移動して Docker を検索し、直接インストールします。すでにインストールされている場合は、インストールが完了したら IDEA を再起動すると、docker プラグインが使用可能になります。 2. リモートDockerへの接続を設定し、Dockerプラグインを開いて新しい接続を作成し、エンジンAPI URLにサーバーのIPアドレス: 2375を入力します。その後、予期しない事態が発生しなければ、下に「接続成功」と表示され、リモートサーバーへのDocker接続が成功します。 3. プロジェクトのpom.xmlファイルを編集し、 <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.0.0</バージョン> <!-- プラグインを特定のフェーズにバインドして実行します --> <処刑> <実行> <id>ビルドイメージ</id> <!-- プラグインをパッケージ フェーズにバインドします。つまり、ユーザーは mvn package を実行するだけで、自動的に mvn docker:build が実行されます --> <phase>パッケージ</phase> <目標> <goal>ビルド</goal> </目標> </実行> </処刑> <構成> <!-- 生成されたイメージ名を指定します --> <画像名>wbb/${project.artifactId}</画像名> <!--タグを指定--> <画像タグ> <imageTag>最新</imageTag> </画像タグ> <!-- プロジェクト ルート パスの下の Dockerfile パス ${project.basedir}: を指定します --> <dockerディレクトリ>${project.basedir}</dockerディレクトリ> <!-- リモート Docker API アドレスを指定します --> <dockerホスト>http://134.175.236.221:2375</dockerホスト> <!-- 以下は、jar パッケージを docker コンテナの指定されたディレクトリにコピーするための構成です --> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <!--jar パッケージが配置されているパスはターゲット ディレクトリに対応します --> <ディレクトリ>${project.build.directory}</ディレクトリ> <!-- Dockerfile に追加されたファイル名に対応する、含める必要のある jar パッケージ --> <include>${project.build.finalName}.jar</include> </リソース> </リソース> <!-- 次の 2 行は、DockerHub への docker push に使用されます。 --> <!--<serverId>docker-hub</serverId>--> <!--<レジストリ URL>https://index.docker.io/v1</レジストリ URL>--> </構成> </プラグイン> 4. プロジェクトのルートディレクトリにDockerfileファイルを作成する Dockerfileの内容 Dockerfileの予約語の分析については、私の別のブログ記事を参照してください: https://www.jb51.net/article/102902.htm。よく使われる予約語の詳細な分析が含まれていますが、例はありません。比較と理解のために、このDockerfileファイルを使用できます。 この Dockerfile の内容はおおよそ次のようになります。 最初の行: 作成するイメージはjava:8イメージ、つまりJDK8に基づいており、基本的なJavaランタイム開発環境が利用可能である必要があります。これは事前にdocker pullすることもできます。 2行目: ビルド時に、ターゲットディレクトリのjarパッケージをイメージに追加し、名前をapp.jarに変更します。 3 行目: イメージが外部に開くポートは 8888 です。これは後でポートをマッピングするときに使用します。必ず覚えておいてください。もちろん、覚えていない場合は docker history コマンドを使用して表示することもできます。 4 行目: イメージインスタンス コンテナが起動すると、java -jar /app.jar コマンドが自動的に実行されます。つまり、コンテナが起動するとプロジェクトが開始され、コンテナの起動時に追加されたコマンド パラメータによって上書きされることはありません。 指定されていないその他のパラメータはデフォルトです。たとえば、コンテナにログインするときのデフォルトのパスはルート ディレクトリです。 5. プロジェクトをパッケージ化し、イメージを自動的にビルドします。右側のMavenプロジェクトをクリックし、パッケージをダブルクリックします。 情報が表示されれば、ビルドは成功したことを意味します。これで、サーバーにアクセスしてビルドされたイメージを表示できます。 ステップ 3: イメージ インスタンス コンテナを起動し、プロジェクトにリモートでアクセスします。次の手順は、IDEA で直接実行することも、サーバー上で実行することもできます。docker コマンドに慣れるために、サーバー側でデモを行いました。 以下で使用されている docker コマンドについては、他の 2 つのブログ投稿 (https://www.jb51.net/article/113227.htm、https://www.jb51.net/article/142481.htm) を参照してください。これらの投稿には、docker イメージ コマンドとコンテナー コマンドの詳細な説明が記載されています。 1. すべてのイメージを表示: docker イメージ 図に示すように、構築したイメージwbb/shopイメージはすでに存在します。 2. コンテナを起動します: docker run -it -p 8889:8888 --name shop wbb/shop 起動時に、-p 8889:8888 はポートマッピング、つまり、ホストのポート 8889 をイメージのポート 8888 にマッピングします。ホストのポート 8889 にアクセスすることは、イメージのポート 8888 にアクセスすることに相当します。この 8888 は Dockerfile ファイルに書かれたオープンポートです。もちろん、通常は -d でバックグラウンドで実行するように指定する必要があります。私はフォアグラウンドのインタラクティブ操作を指定します。実際、それは絵画の美しさを見るためだけです。この図は夢の女神です。 3. コンテナの実行ステータス情報を表示します: docker ps ご覧のとおり、ビルドされたイメージインスタンスは 7 分以上実行されています。ポート マッピングは次のとおりです。 4. リモートアクセスプロジェクト: http://サーバーIPアドレス:8889/shop その前に、ホストのポート 8889 が開いていることを確認する必要があります。そうでない場合は、構成セキュリティ グループ ルールに従ってポート 8889 を解放できます。また、/shop は私のプロジェクトの仮想パスです。 さて、ここでは、IDEA を使用してリモート Docker サービスに接続し、Spring Boot プロジェクトをデプロイする方法を説明しました。不足している点があれば、ぜひアドバイスをお願いします。 付録:リモート アクセス用にポートが開いているかどうかを確認します。オンライン ポート スキャン ツール (http://www.jsons.cn/port/) を使用することもできます。サーバーの IP アドレスと対応するポート スキャンを入力すると、複数のポートをスキャンできるので、非常に便利です。 要約する これで、IDEA がリモート サーバー Docker に接続して Spring Boot プロジェクトをデプロイする方法についての説明は終了です。関連するアイデア、Docker、デプロイ、Spring Boot プロジェクトに関するその他のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL の完全バックアップとクイックリカバリ方法
>>: Vue の vue.$set() メソッドのソースコード例の詳細な説明
この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...
この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...
ハイパーリンクを使用すると、ページからページへ、またはサイトからサイトへ瞬時に移動できます。このよう...
目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...
準備するこの記事の環境情報: ソフトウェアバージョンセントOSセントOS7.4マイグレーション8.0...
JavaScript厳密モードが 8 進数をサポートしていないという問題に関して、まず、 Java...
1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...
序文Linux が完全にセットアップされると、クローン機能を使用して短時間で複数の Linux を作...
目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...
入力ボックスには、コンテンツを入力するときに常に入力履歴が表示されます。これを無効にする現在の方法は...
目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...
導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...
展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....
この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...
この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...