Docker is part of the Moby Project. It is a software framework used to build, run and manage server and cloud-based containers. The word “docker” could be referring to the tools (the commands and a daemon) or the file format Dockerfile.
In the past, web apps would be run on a Linux server running a LAMP stack, or two servers if load balancing became necessary to avoid crashing an app when it became popular. These days the Internet has moved on from single servers to vast arrays of co-dependent and redundant servers. This is what we mean by “the cloud”. Advances such as Linux kernel namespaces and cgroups have meant that we no longer need to think of servers as individual units constrained by hardware. They’ve now crossed the conceptual gap to effectively become pieces of software. The name for these category-busting innovations is ‘containers,’ and they are best thought of as software-based servers. Each container holds a hyper-localized runtime environment and Linux OS in a hybridized form.
Container technology falls under three headings:
- Builder: a tool or toolset meant for building containers. An example would be distrobuilder for LXC or a Dockerfile for Docker.
- Engine: an app that runs a container. In Docker’s case, this is talking about the docker command and the dockerd In other instances, it may mean the containerd daemon and its appropriate commands (like podman.)
- Orchestration: multiple container management technology, like Kubernetes or
Containers often give users a combination of an app and a means to configure it, so that a sysadmin won’t waste so much time getting a container-based app up and running as they would when installing it from one of the old sources. Dockerhub and Quay.io are libraries that offer images that work in container engines.
What appeals most about containers is the way that they can be shut down and restarted as the requirements of load balancing dictate. It doesn’t matter if a container was redundant or whether it broke. It’s easy to stop and start them up again with a minimum of drama, and one other benefit is that their ephemeral nature readily lends itself to easy automation.