Introduction to docker

Thilina Weerasinghe
4 min readApr 13, 2022

Docker is one of the most popular tools for application containerization. Docker enables efficiency and reduces operational overheads. So because of that any developer, in any development environment, can build stable and reliable applications.

Let’s take a look about containerization & Docker !

let’s first understand what happens in a standard delivery pipeline. So developer after writing all the codes will build it. In this, several dependencies can also be needed. After building give the executable or software(code + dependencies) to the tester to check all the test runs which were initially decided even before making of that project. If the project passes all the test runs then tester approves it for the deployment and then it become available to end users.

But what if software fails to pass some of the test runs, it will be given back to developer highlighting the problems, but developer wonders, its working properly in my machine. Why it won’t worked in yours??🤔🤔

So in order to know the problem let’s deep dive into this environment of developer and tester.

developer and tester is using almost the same environment but there is a slight difference so there can be compatibility issue which can cause the software to run on the developer environment but not on the tester’s or client’s environment.

To solve this problem, what developer can do is, he will take the code, all the dependencies(like libraries, functions, tools) and the environment of the project and put it in a container and then he will ship the container like a package to the tester or to the users. By doing this, now the environment of the other’s system doesn’t matter because developer had already configured the container according to the project need.

VM is virtual computers within computers. It will have CPU, memory, disk, kernel everything that a real computer have which will be borrowed from a physical host computer.

Now, containers, based on the same concept but quite different from VMs. Each VMs run its own guest operating system but containers share the operation system of the host which makes containers size lighter than VMs hence, more portable and agile. Moreover, they are isolated from each other and run there own software, binaries and configuration. Container can be made and run on local systems, virtual machines or even deployed on the clouds.

Docker

Docker is an open source platform which allows you to build, deploy, run and manage your containerised app. What it means is its a software that helps you to build containers for your apps. Building containers now your app is independent of any system, any environment because container has everything inside it needed by the app, their dependencies, suitable version, configuration, script, binaries.

Now lets quickly see what are the different terms related to docker are:

  • docker client
  • docker daemon
  • docker image
  • docker container
  • docker hub
  • docker registry
  • docker volumes
  • docker networks

you can install docker desktop if you are using windows. If you are using ubuntu you can install docker Engine.

Good bye👋👋

--

--