Contact Us

 What is Docker?

Docker is the open source software which is used to run software development, software testing, software deployment etc. on containers in an isolated, lightweight and virtualized environment. A developer can maintain his/ her software application and all the necessary executables, libraries, binary code and configuration files in the container isolated from all other applications; and it allows the user to bundle all the libraries, applications, software, and any other resource required to run software application into one package and then deploy the whole package to another server where it is intended to run. So, by using this, developers will no longer say – “It was working perfectly fine at my end, need to check why it is not working on your system”

 

img

Source: docker.com

Using containers will make software application development/ deployment and management easy, efficient and flexible. Docker is best suited to facilitate the work of those who utilize Agile, DevOps and continuous integration and deployment.

It is crucial to understand the following Docker terminologies:

  • Container – It contains the actual working of the application and all the required libraries or any executable for development, testing or deployment. It is capable of running any small microservice or large application. When there is a need to deploy on production, we can deploy the whole container. We can have more than one container to run a single application, some images on one container and others on another. For example, we may have SQL server on one container and .net on another and then interconnect them together and run a single application. This concept is called Networking.

    Benefits of using containers:

    • They are highly portable and flexible to work on any OS or hardware platform.
    • It has a build-in Version control system like git
    • The problem of incompatibility issues while deploying from one server to another is solved with this.
    • Less number of systems are required when using containers. Hence, the cost is reduced.
    • It helps to increase productivity

  • Images – These are a set of read-only templates/files we download from docker repository that can then be configured to set up an environment for the running container with custom functionalities.

  • Layer – Docker image is made up of a set of layers of files which are bound together according to dependency or hierarchy one on top of another.

     

    img

    Source: Sitecore


    In the above picture, we can see three containers: the first container has an environment set up for Sitecore XP with 2 layers – 4.8-windowsservercore-ltsc2019 and on the top of this, we have Sitecore experience platform (XP) layer. Similarly, the other two containers- Sitecore XP-SPE and SPE-SXA have their own set of layers and images as per their requirement. And this way, we can do as many types of customizations as we would like to have.

  • Docker file – Docker file is a text file with an easy to understand syntax to build a docker image to set up the container environment for work. Docker file will help to set up a layer in the image. For example, if you want to set up a Sitecore XP image, then you can see the instructions in the file at Github Sitecore Docker images repository.

  • Volume – It is a very useful feature of docker. We can maintain a folder on your host machine that can be represented inside the container. It may contain log files, html, SQL data or SOLR data so that we don’t need to recreate and to reduce the overhead due to rebuilding every time.
Need Help?