このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:開発環境コンテナ:Spring Boot②

☕ 開発環境コンテナ:Spring Boot②

 前回の「開発環境コンテナ:Spring Boot①」に続いて、今回はSpring Bootアプリケーションをコンテナ上で実行する手順を解説します。
 Docker Composeを使い、Java実行環境(openjdk)上でSpring Bootを起動できるコンテナを構築していきます。

Spring Bootの環境構築は2回に分けて進めています。

内容
開発環境コンテナ:Spring Boot①プロジェクトの作成と準備
開発環境コンテナ:Spring Boot②コンテナの作成とSpring Bootアプリの実行

💡 Spring Boot コンテナの構成

今回作成するSpring Bootコンテナは次のような構成になります。
 ホストマシンの./demoディレクトリをコンテナにマウントし、ソースコードをリアルタイムに反映させながら開発できます。

コンテナ名イメージコマンドポート設定マウント先作業ディレクトリ
spring_containeropenjdk:17./mvnw spring-boot:run8080:8080./demo:/demo/demo

この構成により、ホストPC側でソースコードを編集すると、即座にコンテナ内でも反映されます。
Docker Composeがコンテナの起動・停止・構成をすべて管理してくれるため、開発作業がとてもシンプルになります。

🧹 作業前のクリーンアップ

Docker環境をリセットして、古いコンテナや不要なイメージを削除しておきましょう。

docker system prune -a --volumes
オプション説明
-a未使用のすべてのイメージを削除
--volumes未使用のボリュームも同時に削除

このコマンドを実行すると、停止中のコンテナや不要なキャッシュもまとめて削除され、
クリーンな状態から構築を始めることができます。

実行結果

PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

※GUI操作が好きな方は、Docker Desktop の「Containers」「Volumes」タブから削除してもOKです。

📁 ディレクトリの作成と移動

Docker Composeでは、compose.yamlファイルがあるディレクトリを基準にコンテナを作成します。
そのため、まず作業ディレクトリを整理します。

cd desktop/docker
mkdir springboot
cd springboot
コマンド説明
cd desktop/dockerdocker用の作業フォルダに移動
mkdir springbootSpring Boot用のプロジェクトフォルダを作成
cd springboot作成したフォルダに移動

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir springboot

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/24    11:55                springboot

PS C:\Users\joeac\Desktop\docker> cd springboot
PS C:\Users\joeac\Desktop\docker\springboot>

 作成後、「開発環境コンテナ:Spring Boot①」でダウンロードしたdemoフォルダをこの中に移動します。
「demo」ディレクトリを「springboot」ディレクトリ内に移動させます。

これでSpring Bootのプロジェクトをコンテナで扱う準備が整いました。

⚙️ compose.yaml の作成

次に、VS Codeを起動して compose.yaml を作成します。

code compose.yaml

VS Codeが開いたら、以下の内容を入力して保存します。

services:
  web:
    image: openjdk:17
    container_name: spring_container
    command: ./mvnw spring-boot:run
    ports:
      - "8080:8080"
    volumes:
      - ./demo:/demo
    working_dir: /demo

🧩 定義内容の解説

キー説明
servicesアプリケーションを構成するサービスを定義するトップレベルキー。
webサービスの名前(任意)。ここではSpring Bootアプリを指す。
image使用するDockerイメージ。ここではopenjdk:17を使用。
container_nameコンテナ名を明示的に指定(spring_container)。
commandコンテナ起動時に実行するコマンド。./mvnw spring-boot:runでアプリ起動。
portsホストとコンテナのポートをマッピング(8080→8080)。
volumesホストの./demoをコンテナの/demoにマウント。
working_dirコンテナ内での作業ディレクトリを指定(/demo)。

この定義により、Spring BootアプリがMaven Wrapper経由で起動します。
また、ホストマシンとコンテナのソースコードが常に同期され、編集内容が即時反映されます。

🚀 コンテナの作成と実行

準備が整ったら、コンテナを起動します。

docker compose up -d
オプション説明
upcompose.yamlに基づいてコンテナを作成・起動する。
-dバックグラウンドで実行(デタッチモード)

実行結果

PS C:\Users\joeac\Desktop\docker\springboot> docker compose up -d
[+] Running 4/4
 ✔ web Pulled                                                          58.0s
   ✔ 38a980f2cc8a Pull complete                                        29.9s
   ✔ de849f1cfbe6 Pull complete                                        30.3s
   ✔ a7203ca35e75 Pull complete                                        53.0s
[+] Running 2/2
 ✔ Network springboot_default  Created                                  0.1s
 ✔ Container spring_container  Started                                  1.0s

この表示が出れば、Spring Bootコンテナの起動に成功です。

コマンドの補足解説

コマンド説明
docker compose upComposeファイルに定義されたすべてのサービスを起動
docker compose ps現在起動中のコンテナを確認
docker compose stopコンテナを停止
docker compose downネットワークやボリュームを含めて削除

 起動後は、コンテナ内で./mvnw spring-boot:runが自動的に実行され、Spring Bootアプリが立ち上がります。

🌐 Spring Bootアプリケーションの実行

Webブラウザを起動して、次のURLにアクセスします。

http://localhost:8080

Spring Bootアプリケーションが起動していれば、
ブラウザに以下のメッセージが表示されます。

Hello Spring

もし「このページは動作しません」と表示された場合は、
Spring Bootコンテナの起動処理中である可能性があります。
少し時間をおいてから再読み込みを試してみましょう。

✅ まとめ

ステップ内容
不要なDockerオブジェクトを削除し、環境をクリーンにする。
作業フォルダを作成し、Spring Bootプロジェクトを配置する。
compose.yamlを作成し、openjdk上でSpring Bootを実行する設定を行う。
docker compose up -d でコンテナを起動する。
ブラウザで http://localhost:8080 にアクセスして動作確認する。

これでSpring BootアプリケーションがDocker上で動作しました。
次回以降は、データベース連携や複数コンテナ構成への拡張にも対応できます。

💬 まとめのひとこと

Docker Composeを使えば、JavaやIDEをインストールしなくても
Spring Bootを簡単に実行できます。
「Hello Spring」が見えたら、あなたの開発環境はもう立派なクラウド時代仕様です!