More on Compose Background
Explore the evolution of Docker Compose over time.
We'll cover the following
Multi-container management with Fig
When Docker was new, a company called Orchard Labs built a tool called Fig that made deploying and managing multi-container apps easy. The Python tool ran on top of Docker and let you define complex multi-container microservices apps in a simple YAML file.
You could easily manage the entire application life cycle through the fig
command-line tool alone.
Behind the scenes, Fig would read the YAML file and call the appropriate Docker commands to deploy and manage the app.
From Fig to Docker Compose
Fig was so good that Docker, Inc. acquired Orchard Labs and rebranded Fig as Docker Compose. They renamed the command-line tool from fig
to docker-compose
and, more recently, folded it into the docker
CLI with its own compose
subcommand. We can run simple docker compose
commands to easily manage multi-container microservices apps.
There is also a Compose Specification driving Compose as an open standard for defining multi-container microservices apps. The specification is community-led and kept separate from the Docker implementation to maintain better governance and clearer demarcation. However, Docker Compose is the reference implementation, and you should expect Docker to implement the full spec.
Reading the spec is also a great way to learn the details.
Installing Compose
All modern versions of Docker come with Docker Compose preinstalled, so you no longer need to install it as a separate application. Test it with the following command. The older versions of Docker Compose worked with the docker-compose
command; however, the newer versions work with the docker-compose
command.
$ docker compose versionDocker Compose version v2.32.1
Playground
Click the “Click to connect…” button to connect the terminal and test all the command(s) mentioned above in this terminal.