Docker is an OS-level virtualization that helps to build and deploy any program. Docker is used to utilize the resources, and it is compatible with all operating systems.
What Is Docker Container?The Docker container is the part of Docker that provides a lightweight isolation environment for running applications. It is used because it takes fewer resources and helps to build, test, and deploy the application in a very small and easy way.
PrerequisiteThe docker should be installed and in running condition. We should have a proper Java application that we have to deploy.Java should be installed on your system.Step-By-Step Process To Building Java applicationJava code: I have a simple Java application that will print "Hello World" on the screen. We can create your Java project.import com.sun.net.httpserver.HttpServer;import com.sun.net.httpserver.HttpHandler;import com.sun.net.httpserver.HttpExchange;import java.io.IOException;import java.io.OutputStream;import java.net.InetSocketAddress;public class HelloWorld {public static void main(String[] args) throws IOException {// Create a new HTTP server listening on port 8001HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0);// Create a context for handling requestsserver.createContext("/", new HttpHandler() {@Overridepublic void handle(HttpExchange exchange) throws IOException {// Set the response headersexchange.getResponseHeaders().set("Content-Type", "text/html");exchange.sendResponseHeaders(200, 0);// Get the response body streamOutputStream responseBody = exchange.getResponseBody();// Write the HTML content to the response bodyString htmlResponse = "Hello, World!";responseBody.write(htmlResponse.getBytes());// Close the response body streamresponseBody.close();}});// Start the serverserver.start();// Output a message indicating the server has startedSystem.out.println("Server is listening on port 8001...");}}Now, Before deploying this application with the Docker we have to build it with the help of Dockerfile.
Dockerfile For Java Application | Step-By- Step GuideIt is a file where we writes all the process of building and accessing the application. In this file we use "YML" language which is a easy to learn and also called human language.
Step 1: Write the Dockerfile For Java Application.
Following is the Dockerfile for this application, the process will be same for all your java applications.
# Use a specific version of OpenJDKFROM openjdk:11# Set the working directoryWORKDIR /javaapp
# Copy only the necessary source filesCOPY HelloWorld.java .
# Compile the Java programRUN javac HelloWorld.java
# Set the default command to run the Java programCMD ["java", "HelloWorld"]
FROM: This command is use to specify the version of the language which help to run the application.WORKDIR: This command is use to specify a directory where the all process will happen.COPY: This is use to copy the files and resources from your local system to docker container.RUN: This is use to run any command , it can be language command, or linux command or anything which helps do download the dependencies, building the application, compilation etc.Step 2: Build The Docker image by using dockerfile.
Now, After creating the Dockerfile we have to use Docker for building the image and container for deployment.
Docker file should be present in the main folder of your project.First we have to build the docker imagedocker build -t "any name for your docker image" .docker build -t helloworldStep 3: List all the Docker images.
For listing the all docker imagesDocker images Steps To Deplo The Java ApplicationAfter building the Docker image, now we are ready to deploy the application with Docker.For deployment we have to create the Docker container.
Step 1: Run The Docker container using Docker image.
To create the docker container from the docker images.docker run -p "port" -d "your image name"docker run -p 8001:8001 -d helloworldStep 2: List all the containers in docker.
To list all the running containers.docker psNow, We can access the java application with the help of localhost:port that you have given while creating the docker container.
Open browser and type
127.0.0.1:8001ConclusionWe can build and deploy any application with Docker. Docker is a very optimized way to build a application and deploy on the server. In the Docker the important thing to learn is how the application will Compile and creating Dockerfile. Docker is very efficient way to deploy a application because it takes less resources.
Deploying Java Applications With Docker - FAQ'sCan we build and Deploy any application with Docker?Yes, we can build and deploy any application with Docker
Is the localserver is good for practice?Yes, For practice on docker you can use localserver.
Is it necessary to create Dockerfile?Yes, For building and Deploying any custom application then you have to create your custom Dockerfile
D
decoder_27_1Improve Next ArticleContainerizing Applications with Docker Compose: Step-by-Step Tutorial