Docker Ecosystem - Part II
by @mario21ic
TalleresUNT
AgendaDocker Compose
Demo
Preguntas
Docker Compose
ProblemaContainers aislados
Configurar la ip cada vez que reinicia
Compartir datos de configuracion
Construir cada Image desde Dockerfile
Escalar un container
Docker ComposePermite 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.ymlversion: '2'services: nginx: build: . volumes: - ./html:/usr/share/nginx/html ports: - 8080:80
Docker ComposeDescargar images:
Descargar service de un service:
Revisar logs:
$ docker-compose pull <service>
$ docker-compose pull
$ docker-compose logs
Docker ComposeConstruir images:
Contruir image de un service:
Contruir y correr todos los services:
$ docker-compose build <service>
$ docker-compose build
$ docker-compose up
Docker ComposeCorrer 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.ymlversion: '2'services:web: image: odoo:8 depends_on: - db ports: - 8069:8069db: 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.ymlweb_task: extends: file: docker-compose.override.yml service: web command: echo Task
RecomendacionesAntes 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?