This practical session demonstrates the complete workflow of creating, building, managing, exporting, importing, and deploying a custom Docker image using a Dockerfile. The experiment focuses on understanding Dockerfile instructions, Docker image layering architecture, and application containerization using Java.
Class Practical 30 Jan/ │ ├── Hello.java ├── Dockerfile ├── java-app.tar └── README.md
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from Java inside Docker on Windows!");
}
}
# Base Image
FROM ubuntu:22.04
# Update system and install Java
RUN apt update && apt install -y openjdk-17-jdk
# Set working directory
WORKDIR /app
# Copy source code
COPY Hello.java .
# Compile Java program
RUN javac Hello.java
# Default container execution command
CMD ["java", "Hello"]
docker build -t java-app:1.0 .
Verify image:
docker images
docker run java-app:1.0
Expected Output:
Hello from Java inside Docker on Windows!
List containers:
docker ps -a
Remove container:
docker rm <container-id>
Remove image:
docker rmi java-app:1.0
docker save -o java-app.tar java-app:1.0
docker load -i java-app.tar
Login:
docker login
Tag image:
docker tag java-app:1.0 YOUR_DOCKERHUB_USERNAME/java-app:1.0
Push image:
docker push YOUR_DOCKERHUB_USERNAME/java-app:1.0
This experiment provided practical understanding of Dockerfile-based image creation, container execution, and DevOps application packaging workflows. It demonstrated how Docker ensures environment consistency, portability, and scalable deployment through containerization.