Java アプリケーションを Docker 化する
Docker を使用して、コンパイル済みの Java アプリケーションを、特定のランタイム環境およびその他の必要な依存関係と共にイメージにパックできます。 その後、そのイメージからコンテナーを実行し、アプリケーションがその環境でどのように動作するかを確認できます。 これをアプリケーションの Docker 化と呼びます。
このチュートリアルでは、Node.js 22 と Node.js Express アプリケーションを使用して Docker イメージをビルドするための Dockerfile を作成する方法について説明します。 また、このイメージを他のユーザーと共有し、そこから Docker コンテナーを実行する方法も説明します。
新規 Java プロジェクトを作成する
このチュートリアルのサンプルアプリケーションは、 Hello, World! をコンソールに出力して終了する単一の HelloWorld.java ファイルで構成されます。
メインメニューで へ移動します。
新規プロジェクト ウィザードで、 新規プロジェクト リストから Java を選択します。
新規プロジェクト ダイアログで、プロジェクトに
DockerHelloWorldという名前を付けます。
src ディレクトリにメイン Java クラスファイル HelloWorld.java を作成します。
これを行うには、 プロジェクト ツールウィンドウで、 src ディレクトリを右クリックし、 新規 をポイントして、 Java クラス をクリックします。 新規 Java クラス ダイアログで、
HelloWorldと入力し、 Enter を押します。次のコードを新しいファイルに貼り付けます:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }アプリケーションをコンパイルして実行してみてください。
ガターの
をクリックして 「HelloWorld.main()」を実行する を選択します。
実行 ツールウィンドウのコンソールに
Hello, World!が印刷されているのが見えるはずです。
デフォルトでは、WebStorm はプロジェクトディレクトリの /out/production/DockerHelloWorld/ にある HelloWorld.class ファイルに出力をコンパイルします。ここで、 DockerHelloWorld は現在のモジュールの名前です。
Dockerfile を作成する
プロジェクト ツールウィンドウ Alt+1 で、プロジェクトルートを右クリックし、 新規 をポイントして、 ファイル をクリックします。
新規ファイル… ダイアログで、 Dockerfile と入力し、 Enter を押します。
指示が表示されたら、ファイルを Git に追加することに同意してください。
次のコードを新しい Dockerfile に貼り付けます:
FROM openjdk:17 COPY ./out/production/DockerHelloWorld/ /tmp WORKDIR /tmp ENTRYPOINT ["java","HelloWorld"]
この Dockerfile には、 openjdk:17 イメージを Docker Hub から基にしてイメージを作成する手順が含まれています。 このイメージからコンテナーを実行すると、Docker はプロジェクトの出力ディレクトリの内容をコンテナーの /tmp ディレクトリにコピーします (この場合、出力ディレクトリにはメインクラス HelloWorld.class が含まれます)。 次に、Docker は現在の作業ディレクトリを /tmp に設定し、 java HelloWorld を実行します。 その結果、コンテナーログに Hello, World! が出力されるはずです。
イメージをビルドして実行する
Dockerfile 内のガターで、
をクリックし、 'Docker' で実行する を選択します。

WebStorm は Dockerfile 実行構成 を作成し、Dockerfile からイメージをビルドし、そのイメージに基づいてコンテナーを実行します。 プロセス全体を確認するには、 サービス ツールウィンドウの ビルドログ タブを開いてください。

たとえば、Node.js をインストールしなくても、アプリケーションがどのように実行されるかを正確に示すために、イメージを他のユーザーと共有できます (Docker のみが必要です)。
Java アプリケーションを Docker イメージとして共有する
サービス ツールウィンドウで、Dockerfile から作成されたイメージを見つけます。
デフォルトでは、イメージの作成時にイメージタグが提供されなかったため、一意のイメージ ID で指定されます。 対応する実行構成を編集し、選択したイメージタグを指定して、構成を再実行できます。
イメージを見つけるには、実行中のコンテナーを右クリックし、 を選択します。

必要な ID を持つイメージを右クリックし、コンテキストメニューで イメージのプッシュ… をクリックします。
イメージのプッシュ ダイアログでレジストリを選択し、イメージのリポジトリ名とタグを指定して、 OK をクリックします。
Docker がイメージをレジストリにプッシュすると、そのイメージにアクセスできる人は誰でもイメージをプルして、このイメージからコンテナーを実行できます。 Dockerfile で設定した特定のランタイムバージョンでアプリケーションの正確なバージョンを実行することを確認できます。