docker ecosystem - part i - engine

25
Docker Ecosystem - Part I by @mario21ic Talleres UNT

Upload: mario-j-inga-cahuana

Post on 22-Jan-2017

145 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Docker Ecosystem - Part I - Engine

Docker Ecosystem - Part I

by @mario21ic

TalleresUNT

Page 2: Docker Ecosystem - Part I - Engine

AgendaIntro a Containers

Containers vs VMs

Docker Engine

Comandos

Dockerfile

Recomendaciones

Page 3: Docker Ecosystem - Part I - Engine

ContainersChroots con esteroides

Son procesos aislados que corren con recursos asignados.

Comparten el mismo kernel del host

Livianos a comparacion de Hypervisor

Page 4: Docker Ecosystem - Part I - Engine

Containers vs VMS

Page 5: Docker Ecosystem - Part I - Engine

Containers vs VMS

Page 6: Docker Ecosystem - Part I - Engine

Docker Engine

Page 7: Docker Ecosystem - Part I - Engine

El problema

Page 8: Docker Ecosystem - Part I - Engine

Solución

Page 9: Docker Ecosystem - Part I - Engine

Docker EngineUna plataforma abierta para aplicaciones distribuidas para Developers y Sysadmins

Desarrollado inicialmente en Python y migrado a Go

Servidor (Linux) - Cliente (multiplataforma)

Open-source https://github.com/docker/docker

Page 10: Docker Ecosystem - Part I - Engine

Docker Server - Cliente

Page 11: Docker Ecosystem - Part I - Engine

Docker Engine

Page 12: Docker Ecosystem - Part I - Engine

Docker syntax

command: accion a ejecutar

params: para cambiar comportamiento

image: la plantilla a usar

tag: la version de la plantilla

$ docker <command> [params] <image>:[tag]

Page 13: Docker Ecosystem - Part I - Engine

Demo Images: search & pull• En cli ejecutar:

• Verificar:

$ docker search alpine

$ docker pull alpine:latest

$ docker images

Page 14: Docker Ecosystem - Part I - Engine

Demo Container: Hello• En cli ejecutar:

• Verificar en otro terminal:

$ docker run -ti debian echo "Hello from container"

$ docker ps -a

Page 15: Docker Ecosystem - Part I - Engine

Docker

Page 16: Docker Ecosystem - Part I - Engine

Demo Container: Bash• En cli ejecutar:

• Verificar en otro terminal:

$ docker run -ti debian:latest /bin/bash

$ docker ps

$ docker ps -a

Page 17: Docker Ecosystem - Part I - Engine

Demo Container: Forward port• En cli ejecutar:

• Abrir browser:

http://localhost:8080/

$ docker run --name mynginx -p 8080:80 nginx

Page 18: Docker Ecosystem - Part I - Engine

Demo Container: Volume• En cli ejecutar:

• Abrir browser:

http://localhost:8080/

$ docker run --name mynginx \-v $(pwd)/html:/usr/share/nginx/html \-p 8080:80 nginx

Page 19: Docker Ecosystem - Part I - Engine

Container save as Image• En cli ejecutar:

• En otro terminal:

• Verificar:

$ docker run --name container_debian -ti debian bash

# apt-get update && apt-get install -y htop

$ docker commit container_debian debian_hola

$ docker images

Page 20: Docker Ecosystem - Part I - Engine

Dockerfile

Y como genero mi propio Docker Image personalizado?

Page 21: Docker Ecosystem - Part I - Engine

Dockerfile• Generar archivo Dockerfile con contenido:

FROM nginx:latestMAINTAINER Mario Inga <[email protected]>

RUN echo 'Building from Dockerfile'COPY html/index.html

/usr/share/nginx/html/index.html

Page 22: Docker Ecosystem - Part I - Engine

Dockerfile• Ejecutar:

• Verificar: • Usar la imagen:

$ docker build -t image_from_dockerfile:latest .

$ docker images

$ docker run --name newcontainer -p 8088:80 -d image_from_dockerfile

Page 23: Docker Ecosystem - Part I - Engine

Docker Link• Ejecutar:

• Browser: http://localhost:8080/• Consola:

$ docker run --name some-mysql -p 3306:3306 \-e MYSQL_ROOT_PASSWORD=miclavedb -d mysql$ docker run --name some-wordpress \--link some-mysql:mysql -p 8080:80 -d wordpress

$ docker exec -ti some-wordpress bash

Page 24: Docker Ecosystem - Part I - Engine

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.

Page 25: Docker Ecosystem - Part I - Engine

Preguntas?