Instructor: This is Docker Compose
and the docker-compose.yaml file.
Now I did mention this complete reference
with all the potential options,
but it showed you all important options in this module.
So all the options you will use all the time,
I covered them in this module.
Now with Docker Compose,
it's super easy to build complex projects
consisting of multiple containers
that should be able to interact with each other.
You can also use Docker Compose
if you have just one container, though.
For example, because you like the simplicity
of specifying bind mounts,
not having to use this long path, that is an advantage.
And, even if it's not the bind mount,
having one conflict file where you
can conveniently tweak your container configuration
might be more convenient than having to type long commands
into command prompt or terminal.
That's why Docker Compose is also often used
for single container setups
because you can specify your launch configuration
in such a configuration file,
which is simply easier to maintain and manage
than commands like this.
So Docker Compose is a tool that we'll now see
for the rest of this course because it is so powerful.
But I also want you to understand and keep in mind
that Docker Compose does not replace Docker files.
Instead, it works together with them
with this build option and that it also
only partially replaces docker run and docker build.
Yes, you don't execute these commands anymore,
but under the hood,
they are of course executed by Docker Compose.
So it's not a brand new tool.
It's still part of the Docker ecosystem.
It just makes working with Docker
and complex Docker container configurations easier.
In addition, you can, of course,
still use other Docker commands.
For example, you can still list all volumes
with docker volume ls if you wanna do that,
and here you will also see all the volumes
that were created by Docker Compose.
All the anonymous volumes, all the named volumes,
you can see all of that here.
It's not an either/or decision.
It's really just an extra tool in your tool belt,
which can make working with complex applications
and project setups easier.