Docker Ecosystem - Part II - Compose

Post on 22-Jan-2017

220 views 3 download

transcript

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?