In the last blog, we learned about the core concepts of Docker and how we can create a run .net core app in the container. Today, we are going to learn about the docker-compose to run more than one container together.
It is a YAML file. By default, it’s named docker-compose.yml but it can be changed and specified as a parameter.
First of all, we specify the version of the file. This should be the latest version. I am using 3.6.
Next, we define our set of services. This is where the magic happens. We can define multi-services in one file and run all the service with a single command.
Service has a name, image, build context, environment, network and volume. You can see all the options here.
It’s very easy to manage dockers with docker-compose commands. There are two main commands. Docker-compose up / Docker-compose down.
docker-compose up -d –build
Docker-compose up command run all the services in the compose file. You need to run this command from the directory where docker-compose .yml file is placed.
-d paramter is used to detach console from the container.
By default, images are built when you run this command for the first time. If you make changes to the code, you need to use the –build parameter to tell docker to build image(s) again.
Docker-compose down command stops/removes all the services defined in the compose file. You need to run this command from the directory where the docker-compose .yml file is placed.
Docker-compose is very simple, and helps us run multi-container services from a single file. It is very handy and powerful.
You can download the reference source code on my Github.