Docker compose es una herramienta de administración para por ejemplo aplicaciones compuestas por varios contenedores relacionados entre si, mediante un archivo descriptor de contenedores.
Estructura de la aplicación

Descriptor de contenedores: docker-compose.yml
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html
- ./nginx/default:/etc/nginx/sites-available/default
- ./nginx/default:/etc/nginx/sites-enable/default
- ./logs/nginx-error.log:/var/log/nginx/error.log
- ./logs/nginx-access.log:/var/log/nginx/access.log
Image: Determina la imagen que utilizara el contenedor
volumes: como cargar los directorios/archivos en el contenedor
Archivos log
Archivos vacios, donde se almacenaran los log al ejecutarse el contenedor
default
Configuración básica de nginx
server {
listen 80;
root /usr/share/nginx/html
index index.html;
}
index.html
Archivo que se cargara como parte del directorio «public»
<html>
<body>
<h3> Hola docker </h3>
</body>
</html>
Ejecutar la aplicación
docker-compose up
para terminar utilizamos Ctr+c
Imagenes en ejecución
docker-compose ps
Ejecutar sh en el contenedor
docker-compose exec nginx sh