A Docker Compose file defines everything about an application. The services, volumes, networks, and dependencies can all be defined in one place. The configuration can be used locally to stand up a development environment, plugged into an existing continuous integration or continuous deployment system, or even used on a server to start production services. Later chapters will show better ways to manage running services.
Docker Compose looks for a file named
docker-compose.yml in the current directory. An alternate file can be specified with the
-f option. The file is formatted in YAML so it can be edited in any text editor.
Let's start with a very simple compose file that starts a single
nginx container that listens on port 80. This is an analogous container started with
docker run -p 80:80 nginx. The value for
image can be any image on your server or on the registry just like in the
docker run command:
version: '2' services: web: image...