Docker can package an application and its dependencies in a virtual container that can run on any Linux, Windows, or macOS computer. This enables the application to run in various locations, such as on-premises, in a public cloud, or a private cloud. When running on Linux, Docker uses the resource isolation features of the Linux kernel to allow containers to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines. Docker on macOS uses a Linux virtual machine to run the containers.