Docker Ecosystem - Part II
by
@mario21ic
Talleres
UNT
Agenda
Docker Compose
Demo
Preguntas
Docker Compose
Problema
Containers aislados
Configurar la ip cada vez que reinicia
Compartir datos de configuracion
Construir cada Image desde Dockerfile
Escalar un container
Docker Compose
Permite una facil orchestacion entre containers
Desde 1.6 tiene un dns embebido
Configuracion en un docker-compose.yml con
posibilidad de hacer override docker-
compose.override.yml y extender docker-
compose.admin-task.yml
Desarrollado en Python
Instalacion: pip install docker-compose
docker-compose.yml
version: '2'
services:
nginx:
build: .
volumes:
- ./html:/usr/share/nginx/html
ports:
- 8080:80
Docker Compose
Descargar images:
Descargar service de un service:
Revisar logs:
$ docker-compose pull <service>
$ docker-compose pull
$ docker-compose logs
Docker Compose
Construir images:
Contruir image de un service:
Contruir y correr todos los services:
$ docker-compose build <service>
$ docker-compose build
$ docker-compose up
Docker Compose
Correr service sin dependencias:
Ejecutar un comando en un service:
Ejecutar un archivo compose especifico:
$ docker-compose up --no-deps <service>
$ docker-compose run <service> <comando>
$ docker-compose -f docker-compose.prod.yml up
docker-compose.yml
version: '2'
services:
web:
image: odoo:8
depends_on:
- db
ports:
- 8069:8069
db:
image: postgres:latest
environment:
POSTGRES_USER: odoo
POSTGRES_PASSWORD: odoo
docker-
compose.override.ymlweb:
volumes:
- ./odoo_vps:/mnt/extra-addons/odoo_vps
ports:
- "8069:8069"
docker-compose.task.yml
web_task:
extends:
file: docker-compose.override.yml
service: web
command: echo Task
Recomendaciones
Antes de dockerizar un app primero mapear sus
servicios.
Cada container debe ser responsable de un solo
proceso.
Usar solo volumen en caso sea necesario.
Separar sus configs docker-compose.yml
Aprovechar la reutilizacion de capas al crear
imagenes.
Preguntas?

Docker Ecosystem - Part II - Compose