HomeLinux Administration

DevOps | Docker Custom Image creation | Learn basics of Image

DevOps | Docker Custom Image creation | Learn basics of Image
Like Tweet Pin it Share Share Email
Personal Development Category (English)728x90

In previous articles, I have explained about Docker Container Introduction and how to use Docker Container custom Networking. In this article, I am going to explain you about the Docker Custom Image creation. This whole document will provide you an idea of Docker Custom Image creation. so let’s get start with the quick introduction of Docker Image.

Suggestable Read:  Basics of Docker Container and the installation

Also, Read: Docker Container | Customize the docker Network

Docker Custom Image creationWhat is Docker Image?

Docker image can be described as a template with all required configurations. Whereas a container is a running instance of Docker image. Like containers, an image is not bound to the states i.e. Image does not have states.

There are different images available from the OS/Application vendor along with the custom images from the community.

When working on container a DevOps/Application engineer generally create their own Docker image with all the customizations, this enables them to launch a container quickly.

Methods for custom image creation:

Interactive Method:

In this way, you can download the base Docker OS image -> create container -> manually launch a shell -> perform the customization -> commit the changes.

This process will save your container to a Docker image and that image can be stored/distributed.

The automated method using Dockerfile:

Dockerfile is a text file with the directives/instructions for the image creation.  “docker build” command is used to build the image which creates/configures the image automatically by reading the dockerfile. Dockerfile accept the information in the following format

DIRECTIVE  arguments

In the last session on “Quick Introduction to Docker”, we have covered the “interactive way” of image creation and in this session, we are going to create a Docker image using the dockerfile method.

LAB

Using the Dockerfile, we are going to create an Apache HTTPD Web server on CentOS 7  image. At the high level below configuration will be performed/applied to the Docker image.

  • Download the official CentOS7 image.
  • Perform package update on the image.
  • Install Apache HTTP server.
  • Add a directive to include/copy the index.html from the Docker mgmt server to document root   ( i.e.    /var/www/html ) of the image.
  • Enable port 80 for automatically whenever a container created from this image.
  • Configure the auto start-up of Apache HTTPD service.

Below are the directives we are going to use in the dockerfile.

FROM:   this directive tells which base image to be used to create the custom image, example centos/ubuntu/fedora etc.

RUN:   this directive is used to define the commands to be executed during the image build.

ADD:   this directive is used to define the files/directories to be copied from the source ( local server) to the image during image build.

ENTRYPOINT:  this directive defines the container as executable.

CMD:  this directive is used to define the arguments for the ENTRYPOINT command.

EXPOSE:   this directive defines the network ports on which container will listen.

Also, Check out the Video for more details:

Docker Custom Image creation

Sample dockerfile: Docker Custom Image creation

# use latest centos7 image.

FROM centos7:latest 

# add the image maintainer name and email id 

MAINTAINER Yogesh Mehta email: [email protected]

# update the centos image with latest available updates

RUN yum update -y

RUN yum clean all

# install network utilities, such as ( ifconfig,netstat, etc)

RUN yum install net-tools –y

# install apache httpd  web server

RUN yum install httpd -y

RUN yum clean all

# copy the index.html file from current directory to image’s document root

ADD index.html /var/www/html/

# define image to allow listen on port 80 (whenever a container created)

EXPOSE 80

# define the commands to be executed when container boots (created from this image)

ENTRYPOINT [ “/usr/sbin/httpd” ]

CMD [ “-D”, “FOREGROUND” ]

Build image:

# docker build -t [repository/image_name]:[tag] .

Test the newly created image by creating a container.

# docker run -it -d -P [image id]

# curl [container IP]:80

Conclusion: I hope this article and the video will give you a basic knowledge of Docker Custom Image creation and how can you build your own custom image to create Docker Containers.

Comments (1)

  • Hi Yogesh. It is a nice article . I have few questions . Can we have a call . 8892431110 is my whatsapp number . Please ping me there once.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.