Docker is 4 things
- First, the Dockerfile file format for declaratively describing a machine (operating system, installed packages, processes, etc).
- Second, the Docker Engine which takes a Dockerfile and runs it on a Linux host natively, without a virtual machine.
- Third, the Docker Desktop app which takes a Dockerfile and runs it on a Mac or Windows host, using a Linux virtual machine.
- Fourth, the Docker Hub container repository which allows a community to share Dockerfiles for common configurations.
Often, when people evaluate Docker or make statments about "Docker," they're referring only to the Docker Engine. But most of the time, this is not a useful view to take. Most of time, the practicality of Docker comes from a combination of all four of these things.