Docker is an open-source platform that helps users build, run, and manage containers. Containerization is the process of packaging an application and all of its dependencies in one easy-to-use container image. This makes apps super portable. Once an image is built, we can launch that app almost anywhere, with minimal effort.
Docker containers are not the same thing as virtual machines. A container lets an app run in an isolated part of the operating system. It's basically an app in a box. The app has its own, separate, and isolated filesystem. Furthermore, it can only see the processes inside the container. But it cannot see the processes "outside" that run on the host operating system.
A virtual machine, on the other hand, is a full-blown virtual computer. It has its own virtual CPU, virtual video card, virtual disks, and so on. It's basically a way to split a big, real computer, or server, into smaller virtual computers. And the hypervisor is the thing that controls and monitors all of those virtual machines / computers.
With a simple "docker run" command, a container image is downloaded, and the app within is started. It's easy to do, and fast.
It increases overall productivity as the time required to set up the applications is reduced.
An image includes an app, and all of its dependencies. So the app will have everything that it needs, inside its own container. This means that the app can run on multiple operating systems, without requiring any changes. For example, we can launch the same image on Ubuntu 20.04, Ubuntu 22.04, Debian 10, Debian 11, and so on.
The applications that run inside containers are isolated from each other, and also, the host operating system. This means that if App A malfunctions, App B should continue to work just fine. And if App B does something malicious, the damage should not spill over onto the operating system. All damage will usually be limited inside that container.
The image contains the required dependencies of the application only. This results in the creation of small images. This way, images can be downloaded and started faster.
Docker is accessible to everyone as it is open-source.
With this playground you can get hands-on experience with Docker. The advantage? You don't have to set up anything. With one click, you get almost instant access to a Docker environment, accessible in your web browser.
docker-compose is included -- a tool for running multiple containers, using YAML files.
You can go through the Free course Docker for absolute beginners that can help you boost your skillsets in Docker. You can also prepare for the DCA examination by completing the Docker Certified Associate Exam Course.