Docker Java Application Example

As, we have mentioned earlier that docker can execute any application.

Here, we are creating a Java application and running by using the docker. This example includes the following steps.

1. Create a directory

Directory is required to organize files. Create a director by using the following command.

$ mkdir  java-docker-app  

2. Create a Java File

Now create a Java file. Save this file as file.


class Hello{  
    public static void main(String[] args){  
        System.out.println("This is java app \n by using Docker");  

Save it inside the directory java-docker-app as

3. Create a Dockerfile

After creating a Java file, we need to create a Dockerfile which contains instructions for the Docker. Dockerfile does not contain any file extension. So, save it simple with Dockerfile name.

// Dockerfile

FROM java:8  
COPY . /var/www/java  
WORKDIR /var/www/java  
RUN javac  
CMD ["java", "Hello"]  

Write all instructions in uppercase because it is convention. Put this file inside java-docker-app directory. Now we have Dockerfile parallel to inside the java-docker-app directory.

See, your folder inside must look like the below.

4. Build Docker Image

After creating Dockerfile, we are changing working directory.

$ cd   java-docker-app  

Now, create an image by following the below command. we must login as root in order to create an image. In this example, we have switched to as a root user. In the following command, java-appis name of the image. We can have any name for our docker image.

$ docker build -t java-app .    

After successfully building the image. Now, we can run our docker image.

5. Run Docker Image

After creating image successfully. Now we can run docker by using run command. The following command is used to run java-app.

$ docker run java-app  

See, the screen shot of the above command.

Here, we can see that after running the java-app it produced an output.

Now, we have run docker image successfully on your system. Apart from all these you can also use other commands as well.