Docker Compose presents a similar interface to the Docker CLI. The docker-compose command uses some of the same command names and arguments for the functionality it supports—which is a subset of the functionality of the full Docker CLI. When you run commands through the Compose CLI, it sends requests to the Docker engine to act on the resources in the Compose file.
The Docker Compose file is the desired state of your application. When you run docker-compose commands, it compares the Compose file to the objects that already exist in Docker and makes any changes needed to get to the desired state. That could be stopping containers, starting containers, or creating volumes.
Compose treats all the resources in a Compose file as a single application, and to disambiguate applications running on the same host, the runtime adds a project...