• Recent blogs

    How to create Docker Images with a Dockerfile

    How to create Docker Images with a Dockerfile

    Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.

    Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession.

    In this tutorial, We will learn how to create your own docker image with a dockerfile.

    Details in a Dockerfile:


    The base image for building a new image.


    Optional, it contains the name of the maintainer of the image.


    Used to execute a command during the build process of the docker image.


    Copy a file from the host machine to the new docker image.
    How to Copy Files from and to Kubernetes pods and Docker Container


    Define an environment variable.


    Used for executing commands when we build a new container from the docker image.


    Define the default command that will be executed when the container is running.


    This is directive for CMD command to be executed.


    Set the user or UID for the container created with the image.


    Enable access/linked directory between the container and the host machine.

    Lets Start:

    Install Docker:

    Please follow this article to install docker according to your OS.

    Docker Installation & Configuration ON CENTOS 7
    Install docker on Ubuntu 


    root@dockerserver# apt-get update

    Install docker.io with this apt command:

    root@dockerserver# apt-get install docker.io

    Now start the docker service and enable it to start at boot time:

    systemctl start docker


    1. Create Docker Repo. Kernel should be 3.10.

    tee /etc/yum.repos.d/docker.repo <<-'EOF'


    name=Docker Repository






    2. Install docker.

    yum install -y  docker-ce docker-ce-cli containerd.io

    Create a Dockerfile

    In this step, we will create a new directory for the dockerfile and define what we want to do with that dockerfile.

    [root@dockerserver nginxtest]# cat Dockerfile
      FROM nginx

      COPY index.html /usr/share/nginx/html/
    [root@dockerserver nginxtest]#

    In this Dockerfile we are pulling latest nginx docker image and a copying index.html file to the docker image from the host machine.

    FROM nginx :  pulling latest nginx docker image
    COPY index.html /usr/share/nginx/html/ : copying index.html file to the docker image from the host machine

    Build New Docker Image

    As we have the  Dockerfile, now we can build a new docker image based on our dockerfile with the docker command below:

    [root@dockerserver nginxtest]# docker build -t manastri/springcloud .
    Sending build context to Docker daemon  123.9kB
    Step 1/2 : FROM nginx
     ---> c7460dfcab50
    Step 2/2 : COPY index.html /usr/share/nginx/html/
     ---> 8dcda34419b1
    Successfully built 8dcda34419b1
    Successfully tagged manastri/springcloud:latest
    [root@dockerserver nginxtest]#

    When the command completed successfully, we can check the new image 'manastri/springcloud ' with the docker command below:

    [root@dockerserver nginxtest1]# docker images
    REPOSITORY                                TAG                 IMAGE ID            CREATED              SIZE
    manastri/springcloud                      latest              8dcda34419b1        About a minute ago   126MB

    No comments