Docker is a software for automating the deployment and management of applications in an operating system-level virtualization environment. It allows you to package an application with all its environment and dependencies into a container that can be ported to any Linux system with kernel cgroups support and provides a container management environment


Originally used LXC features, since 2015 used my own library abstracting the virtualization capabilities of the Linux kernel - libcontainer. With the advent of the Open Container Initiative, the transition from monolithic to modular architecture began.

With docker you can separate your application from your infrastructure and treat the infrastructure as a managed application

Docker helps you expose your code faster, test faster, expose applications faster, and reduce the time between writing code and running code, it does this with a lightweight container virtualization platform, using processes and utilities that help manage and expose your applications.

In its kernel, docker allows you to run almost any application safely isolated in a container. Secure isolation allows you to run many containers on the same host at the same time. The lightweight nature of the container, which runs without the added burden of a hypervisor, allows you to achieve more from your iron.

The platform and container virtualization tools can be useful in the following cases:

  • packaging your application (and so used components) into docker containers;
  • distributing and delivering those containers to your teams for development and testing;
  • putting these containers on your productions, both in data centers and in the cloud.

The template has just the Docker package installed and auto-run installed. Everything else is according to the official documentation. We do not do any customization of our environment.

You can use local socket /run/containerd/containerd.sock or SSH tunnel to connect to Docker.

Updated May 25, 2020