What You'll Learn
Docker Compose's Essential Terminology
Before you dive into creating a local development environment using Docker Compose, you'll learn some essential terminology that you need to be aware of, terms such as Image, Container, and Registry.
How to Install Docker Compose
Now that you know some of the key terminology, it's time to install Docker Compose and the related tools that you'll need to follow along with the book and course.
In this chapter, you'll learn how to do that on the three major operating systems: Linux, macOS, and Microsoft Windows.
How to Build a Local Development Environment using Docker Compose
In this chapter, you're going to get your hands dirty with Docker Compose by learning how to build a development environment which serves as the basis for production (or any other environment).
You're going to learn the essentials of Dockerfiles and Docker Compose files (docker-compose.yml) to build a 3-service configuration that can run an application on your local development machine. On top of that, you're going to learn the essential Docker and Docker Compose commands for starting and stopping containers and testing that they're running properly.
How to Perform Basic Docker Compose Debugging
Now that you've learned how to create a basic setup with Docker Compose, you're going to learn how to do basic container debugging.
If things go wrong, you need to know how to figure out what’s going wrong and why.
With that knowledge, you can either fix the problem or ask someone for help if you’re unable to fix it on your own.
So in this chapter, you're going to learn the docker commands to debug containers.
How to Run Tests and Debug Apps When They're Run Using Docker Compose
Docker and Docker Compose make it pretty trivial to build local development environments.
But what about running tests and debugging applications running inside containers, versus on your local development machine?
How do you run unit, functional, acceptance, and other types of tests when the code and runtime are inside Docker containers, not on your local machine?
How do you do step-through debugging?
In this chapter, I'll show you how to augment the configuration which we've built so far, to do both.
Specifically, I'll show you how to run tests using PHPUnit and
Codeception and to do step-through debugging using
PhpStorm.
In future editions of the book, I may expand this chapter to include other languages, such as Java or Python.
How to Deploy Apps to Production Using Docker Compose and a Handful of Docker Commands
In the final chapter of the book, you'll learn how to build Dockerfiles and Docker Compose files to deploy applications to a remote environment. You'll also learn some of the things that you need to consider when deploying containers to remote environments, versus on your local development machine.
You’ll also learn about building, tagging, and pushing Docker images to image registries, and how to create Docker contexts so that you can work with multiple remote Docker daemons. It won't make you a DevOps guru or Systems Administrator — but you'll be that much less reliant on them!