
Docker とは、自分のパソコンの中に本番環境と全く同じ構成のサーバー (仮想環境) を一瞬かつ軽量に立ち上げられる仕組みのことです。今回は「 Docker (ドッカー) が Java 開発現場でどのように扱われているか」について簡単にお伝えします。
Docker が Java 開発現場でどのように扱われているか
以下の手順を実施することで、アプリケーションは開発環境に依存しない「Dockerが入っている環境であれば、世界中どこのサーバーでもコマンド1つで全く同じように動く状態」を実現することができます。
- Docker を起動
- Spring BootアプリをJarファイルにビルド
- 設定ファイル「Dockerfile」作成
- Dockerイメージをビルド
- Dockerコンテナを起動
- 動作確認
Docker の起動
最初に Docker を起動します。Docker の種類や導入方法については、以下の別記事をご参照ください。
Spring BootアプリをJarファイルにビルド
Dockerコンテナに入れるために、まずはプロジェクトを1つの実行可能ファイル (.jar) にまとめます。

Eclipseのパッケージ・エクスプローラーでプロジェクトを右クリック、実行から Maven ビルド … を選択してください。
ここではすでに demo プロジェクトというものが実装されているとします。どういうものを実装したかについては、以下の記事をご参照ください。

設定画面が開くので [ゴール (Goals)] の入力欄に以下のコマンドを入力してください。入力後、実行をクリックします。
clean package
上記画像のように、コンソールに BUILD SUCCESS と表示されたら完了です。プロジェクトの target フォルダの下にJARファイルができていることを確認してください。
設定ファイル「Dockerfile」作成
Dockerに対して「どういう環境を作り、どうやってJavaアプリを起動するか」を指示する Dockerfile を作成します。

プロジェクトの直下を右クリックし、 新規からファイルを選択してください。(pom.xml と同じ階層)

ファイル名に Dockerfile と入力し、完了をクリックしてください。
# 1. ベースとなる環境として、Java 21がインストールされた軽量Linux(Alpine)を指定
FROM eclipse-temurin:21-jdk-alpine
# 2. コンテナ内の作業ディレクトリを「/app」に設定
WORKDIR /app
# 3. 先ほどビルドしたJarファイルを、コンテナ内の「app.jar」という名前でコピー
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
# 4. コンテナ起動時に実行するコマンドを指定(java -jar app.jar を実行)
ENTRYPOINT ["java", "-jar", "app.jar"]Dockerfile に上記の内容を入力し、保存します。

コマンドプロンプトを開き、cd コマンドでプロジェクトがあるフォルダに移動します。移動後、以下のコマンドを入力してください。このコマンドで todo-app のバージョン 1.0 というイメージがPC内に作成されます。
docker build -t todo-app:1.0 .Dockerコンテナを起動

コマンドプロンプトで、以下のコマンドを入力します。
docker run -d -p 8080:8080 --name my-todo-container todo-app:1.0| -d | バックグラウンドで実行する(デタッチモード) |
| -p 8080:8080 | 自分のPCのポート 8080 へのアクセスを、コンテナ内のポート 8080 へ転送する設定。 |
| –name my-todo-container | この起動するコンテナに固有の名前をつける |
動作確認

Eclipse側でアプリが停止している (ポート8080が空いている) ことを確認した上で、ブラウザを開き、以下のURLにアクセスしてください。Eclipse上で起動したときと全く同じToDoアプリの画面が表示され、タスクの追加・削除ができることを確認しましょう。
http://localhost:8080/todo
コメント