Prerequisites
- Install Docker on your machine (follow Docker's official installation guide).
- Basic Spring Boot Application - Make sure your Spring Boot app is ready to be containerized.
Step 1: Create a Simple Spring Boot Application
If you don't have an application already, create one using Spring Initializr (https://start.spring.io/).
Generate a basic Maven or Gradle project with dependencies you need (for example, Spring Web).
Step 2: Create a Dockerfile
In the root directory of your Spring Boot application, create a new file named Dockerfile
(no extension).
# Use an official JDK runtime as a parent image
FROM openjdk:17-jdk-slim
# Add a label to identify the application
LABEL maintainer="your-email@example.com"
# Set the working directory in the container
WORKDIR /app
# Copy the application JAR file to the container
COPY target/your-application-name.jar app.jar
# Expose the port your app runs on
EXPOSE 8080
# Run the application
ENTRYPOINT ["java", "-jar", "app.jar"]
Note: Replace
your-application-name.jar
with the actual name of your Spring Boot JAR file.
Step 3: Build the Application
In the terminal, navigate to the root directory of your Spring Boot project, then run:
./mvnw clean package
This will build the application and generate a JAR file in the target/
directory.
Step 4: Build the Docker Image
Run the following command in the terminal from the root of your project (where the Dockerfile
is located):
docker build -t my-spring-boot-app .
Here:
-
-t my-spring-boot-app
tags your image asmy-spring-boot-app
. -
.
specifies the current directory, where Docker will look for the Dockerfile.
Step 5: Run the Docker Container
Now that the image is created, you can run the container:
docker run -p 8080:8080 my-spring-boot-app
Explanation:
-
-p 8080:8080
maps the container’s port 8080 to your machine’s port 8080. -
my-spring-boot-app
specifies the Docker image to run.
Your Spring Boot application should now be accessible on http://localhost:8080
.
Step 6: Verify the Application
Open a browser or use a tool like curl
to access the application and verify it's working:
curl http://localhost:8080
Optional Steps
-
Stop the Docker Container:
Find the container ID with
docker ps
and stop it with:
docker stop <container-id>
- Clean Up Unused Images/Containers:
docker system prune
Summary
- Dockerfile - Define how to build the Docker image.
- Build - Create the Docker image.
- Run - Start the container and access the application.
This approach should give you a clear path to Dockerizing your Spring Boot application!
Top comments (0)