📄️ Introduction to Part 2
This part introduces container orchestration with Docker Compose and relevant concepts such as docker network. By the end of this part you are able to:
📄️ Migrating to Docker Compose
Even with a simple image, we've already been dealing with plenty of command line options in both building, pushing and running the image.
📄️ Docker networking
Connecting two services such as a server and its Database in docker can be achieved with a Docker network. In addition to starting services listed in docker-compose.yml Docker Compose automatically creates and joins both containers into a network with a DNS. Each service is named after the name given in the docker-compose.yml file. As such, containers can reference each other simply with their service names, which is different from the container name.
📄️ Volumes in action
Next we're going to set up the project management application Redmine, a PostgreSQL database and Adminer, a graphical interface for database administration.
📄️ Containers in development
Containers are not only great in production. They can be used in development environments as well and offer a number of benefits. The same works-on-my-machine problem is faced often when a new developer joins the team. Not to mention the headache of switching runtime versions or a local database!
Again we started from the ground up by learning how to translate non-compose setup into docker-compose.yml and ran with it. Compose gave us also a few handy completely new features that we didn't even know we needed, networks.