SlideShare una empresa de Scribd logo
Usando
Profundizando en contenedores Julio 2015
Conceptos sobre
Docker
Modelos de aislación de aplicación
Kernel
Procesos
Network
IPC
Filesystem
Global
Imágen R/O
Filesystem
Contenedor
Filesystem
Chroot
Procesos
Network
IPC
Procesos
Network
IPC
FS R/W
Hardware
Hardware Emulado
Kernel VM
Procesos
Network
IPC
Filesystem
VM
Nativo Chroot Container Docker VM
+
Que agregó Docker a Contenedores
Union fs, imágen read-only + filesystem escribible (CoW)
Imágenes fáciles de generar, derivar de otras, compartir y versionar
Orientado a correr programas individuales, no sistemas
Interface CLI intuitiva y simple, API REST, ejecutable sin dependencias
Red por defecto
enmascaramiento de acceso a red
exposición explícita de puertos
Ecosistema y comunidad muy activos
Docker Filesystem
Potencialmente muchas capas
Imagen sólo lectura
Se pueden compartir imágenes (registry)
Contenedor escribible asociado
Volúmenes sin versionado
Diferentes FS base
AUFS (union fs, CoW de archivos)
Device Mapper (ThinP, CoW de bloques)
BtrFS (subvolumes, snapshots)
Mas a futuro (ZFS, OverlayFS, etc)
Depende de distribución/disponibilidad
Comparación en Project Atomic
Imágenes
Obtención/Creación
docker pull/run de Docker Hub, o
Docker registry propio
docker commit contenedor->imagen
docker export -> .tgz -> docker import
Crearlas a partir de Dockerfiles
Pueden tener capas a su vez
“Herencia” entre capas ya creadas
Capas “padre” están 1 sola vez en
disco/cache
Apuntar a menor tamaño busybox<alpine
<debian<ubuntu
Ubuntu 14.04 +npm +aplicación 1
+jvm
+aplicación 3
+aplicación 2
+memcache
CentOS 6
+jboss
+ruby 1.9.1
+ruby 2.1.4
+aplicación 4
+aplicación 5
Que se define en este ejemplo?
Imagen base (con versión)
Variables de entorno para construcción
Comandos a ejecutar en construcción
Archivos a agregar
Volúmenes del contenedor
Puertos que se exponen
Comando que se ejecuta por defecto
Cada línea operativa agrega capa, usar
volúmenes para directorios transitorios
Dockerfiles
FROM ubuntu:trusty
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && 
apt-get -yq install mysql-server-5.6
ADD my.cnf /etc/mysql/conf.d/my.cnf
ADD run.sh /run.sh
VOLUME ["/etc/mysql", "/var/lib/mysql"]
EXPOSE 3306
CMD ["/run.sh"]
docker build <directorio del dockerfile> --tag mysql
Volúmenes
docker run … 
-v /opt/c/mysql1data:/var/lib/mysql ....
Directorio del disco -> directorio del contenedor
docker run … 
--volumes-from contenedor1 …
Usa volúmenes de otro contenedor
(contenedor1 no tiene porque estar corriendo)
Filesystem
Contenedor
/opt/c/mysql1data/var/lib/mysql
Contenedor Contenedor1
/var/lib/mysql /var/lib/mysql
Usos: backups, crons, transporte, área de compartición entre varios contenedores, captura de
logs, persistir datos en SAN/NFS, filesystems distribuidos, etc
Networking
Modo bridge (net=bridge/defecto)
Crea bridge docker0
Contenedores en subnet
detrás del bridge
Puertos expuestos
enmascarados en eth0
172.17.0.2 172.17.0.3
172.17.42.1
200.40.133.133
contenedor 1
eth0
docker0
contenedor 2
Modo host (net=host)
Usa la red del host
Publica directamente servicios en la misma interfaz de red
Modo none (net=none)
No configura la red
Útil para configurar red por nuestros propios medios
después, o usos que no requieren red
Modo container (net=container_id)
Similar a modo host, pero usa la red de otro contenedor,
previamente creado, en vez de la del host
“eth0”
Enlaces entre contenedores
Contenedor1
docker run -p <puerto> --name Contenedor1 ...
Dockerfile EXPOSE <puerto>
Contenedor2
docker run --link Contenedor1 ...
● <puerto> es accesible directamente
● variables de entorno que dicen puerto/ip
● /etc/hosts contiene Contenedor1
Contenedores “embajador” sirven de puente para enlazar contenedores entre distintos
servidores físicos/VMs
Contenedor1 Contenedor2Embajador1 Embajador2
Agrupando contenedores
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
● Trata varios contenedores como una
unidad
● Define cómo se construye/obtiene
c/u
● Define puertos y volúmenes
compartidos
● Permite definir variables de entorno,
como se ve el grupo desde afuera
● archivo de definición yaml
Docker-compose
Algunas herramientas para redes
docker-machine
Prepara máquinas/vms para correr docker
docker-swarm/fleet/etc
distribuye contenedores entre máquinas
Consul
directorio dinámico de servicios
Kubernetes
Ejecución de grupos de contenedores en clúster
Donde correrlos?
Cluster
Mesosphere
RedHat Openshift
Openstack/Magnum
Amazon ECS
Google Compute engine
IBM Bluemix
PAAS varios (Flynn, Deis,
etc)
etc
Maquina
Cualquier linux con kernel
reciente corre
Distribuciones orientadas a
contenedores
CoreOS
Rancher
Atomic OS
Ubuntu Snappy
VMWare Photon
Intel ClearLinux
Estrategias de uso
Que debería tener un contenedor?
imagen
conf datos
● Inmutable
● En repositorio privado/público
● Dockerfile para crearla
● Versionada
● aplicación sigue 12factor.net
● Pasada x entorno/
etcd/ volúmenes/
línea de comando
● Depende/informa
de contexto
● Dónde están mis
datos?
● Debug info?
● Claves/certs
● En volúmenes
● Distintos sets de datos
● Accesible desde distintos
procesos/contenedores
● Respaldos/crons trabajan fuera
de este contenedor
Contenedor
ideal
Backups
imagen
conf datos
● Definido en Dockerfile
● Respaldado en repositorio
● Solo cuando se (re)construye
● Versionado en
git
● Sólo cuando hay
cambios de
configuración
● Lo que importa
respaldar o distribuir
● En volúmenes
Reuso de imágenes
Webserver
DB
Aplicación
Webserver
DB
Patrones para imágenes
reusables
● Misma distribución base
● Mismas herramientas base
● Bibliotecas comunes
● muchos daemons? runit/ monit/
supervisord/ etc
● usuarios estandarizados
Continuous Delivery
Configuración/Datos pueden variar dependiendo del contextoDesarrollo
Testing QA Staging Producción
Imagen se mantiene inmutable en todo el proceso UsuariosRouter
Las etapas pueden correr en distintos equipos físicos, uso de registry para transporte
Escalamiento vertical
VM
compartida
VM
dedicada
Servidor(es)
dedicado
Cloud de bajos
recursos
Cloud de altos
recursos
La aplicación no cambia por mucho que
el ambiente donde corre si lo hace
Hardware/ambientes existentes se puede reusar o compartir
con otras aplicaciones al no estar atados unos con otros
docker run -v /server/datos --name datacontainer1 tianon/true /bin/true
Contenedores de datos
Server
Backup
Reportes
cron
shell
125 bytes
● No depende de donde queda en host
● Permisos/uid/gid consistentes
● No tienen que estar corriendo un
proceso para usarse
inicialización
Data
container
NO usar como VMs
Monitoreo
● No correr agente
● /sys/fs/cgroup para métricas
● Monitorear aplicación/puertos
● Sysdig
Logs
● Montar /dev/log como volumen y usarlo desde otro
contenedor con (r)syslog (syslog-docker)
● docker logs muestra stdout/stderr de lo que corre
dentro
Acceso a contenedor en ejecución
● No correr sshd en contenedor
● Usar docker exec para shell/comando
● Usar volúmenes para archivos que
tengan que ser accedidos por otros
procesos/contenedores (cron, backup)
Invocación
● Se pueden crear y descartar muy rápido
● Eficientes en memoria, pueden quedar
cargados y enviarles tráfico desde
balanceador cuando se precisen
● Fácil iterar con ellos
● Persistencia vía volúmenes
Adopción gradual
Convivencia con HW/SW existente
Implementación de nuevos servicios
Necesidad de correr apps que requieren librerías/
dependencias diferentes/ conflictivas con lo instalado
Agilizar desarrollo/ testing/ QA
Replicación sistemas/ servicios para testear cambios/
configuraciones
Implica cambio de mentalidad, no forzar si no se entiende
Pequeña escala
Pruebas limpias de software/servicios
Aislación de aplicaciones en escritorio
Alternativa a manejo de paquetes
Instalación simple de sistemas complejos
Replicación ambientes de producción
Entornos rápidos de otras distribuciones
Alternativas a
Docker
Otros enfoques
CBSD, Jetpack (para FreeBSD, Jails+imágenes)
Joyent Triton (containers docker/linux en SmartOS)
Ubuntu LXD (Hypervisor orientado a contenedores)
CoreOS Rocket (Reemplazo de docker, más modular)
Hyper.sh (carga imágenes docker como vm)
cargo (uso de imágenes docker en lxc)
kernels livianos para VMs (unikernels, rumpkernels)
pullcontainer (chroots usando imágenes docker)
systemd (está adoptando mucha tecnología de contenedores)
Sitios de
interés
Documentación oficial
https://docs.docker.com/
Tutorial
https://www.docker.com/tryit/
Blog de JPetazzoni
http://jpetazzo.github.io/
The Docker Book
http://www.dockerbook.com
Awesome docker
https://github.com/veggiemonk/awesome-docker
Docker cheat sheet
https://github.com/wsargent/docker-cheat-sheet
Docker resources
https://github.com/hangyan/docker-resources

Más contenido relacionado

La actualidad más candente

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Javier Sánchez Ochando
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
Alejandro Escanero Blanco
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Open Canarias
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
Gustavo Muslera
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
CLEFormación
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
Irene Alonso Candelario
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
Restorando
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Nicolás Bello Camilletti
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
ITPAMI
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Restorando
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
Gustavo Andres Brey
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
Gabriel Eisbruch
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
Erasmo Domínguez Jiménez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
Angel Nuñez
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
Mariano German Egui
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
David Luque Quintana
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
Software Guru
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
Martin Kenneth Michalsky
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
Restorando
 

La actualidad más candente (20)

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 

Similar a Usando docker

Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
Raúl Requero García
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
StivenLopez46
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedores
pacvslideshare
 
presentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfpresentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdf
JohnathanRodriguez12
 
Red hat
Red hatRed hat
Red hat
Omar Zuñiga
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
Marco Bellido
 
Clase Hadoop
Clase HadoopClase Hadoop
Clase Hadoop
JorgeAntonioCabreraG2
 
trabajo numero 3
trabajo numero 3trabajo numero 3
trabajo numero 3
Jorge Mengelle
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
betabeers
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
Daniel Cruz
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
JulioMontes23
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
BelnGonzlezGarca1
 
Bii t03 - sistemas operarivos. windows, linux y unix
Bii t03 - sistemas operarivos. windows, linux y unixBii t03 - sistemas operarivos. windows, linux y unix
Bii t03 - sistemas operarivos. windows, linux y unix
nuria garcia
 
SQLite
SQLiteSQLite
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
Óscar De Arriba González
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
Micael Gallego
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
Rafael Hernamperez Martin
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
sergiovier
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
Angélica Espinosa , ITIL
 

Similar a Usando docker (20)

Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedores
 
presentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfpresentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdf
 
Red hat
Red hatRed hat
Red hat
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Clase Hadoop
Clase HadoopClase Hadoop
Clase Hadoop
 
trabajo numero 3
trabajo numero 3trabajo numero 3
trabajo numero 3
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Bii t03 - sistemas operarivos. windows, linux y unix
Bii t03 - sistemas operarivos. windows, linux y unixBii t03 - sistemas operarivos. windows, linux y unix
Bii t03 - sistemas operarivos. windows, linux y unix
 
SQLite
SQLiteSQLite
SQLite
 
1
11
1
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
 

Último

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 

Último (20)

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 

Usando docker

  • 3. Modelos de aislación de aplicación Kernel Procesos Network IPC Filesystem Global Imágen R/O Filesystem Contenedor Filesystem Chroot Procesos Network IPC Procesos Network IPC FS R/W Hardware Hardware Emulado Kernel VM Procesos Network IPC Filesystem VM Nativo Chroot Container Docker VM +
  • 4. Que agregó Docker a Contenedores Union fs, imágen read-only + filesystem escribible (CoW) Imágenes fáciles de generar, derivar de otras, compartir y versionar Orientado a correr programas individuales, no sistemas Interface CLI intuitiva y simple, API REST, ejecutable sin dependencias Red por defecto enmascaramiento de acceso a red exposición explícita de puertos Ecosistema y comunidad muy activos
  • 5. Docker Filesystem Potencialmente muchas capas Imagen sólo lectura Se pueden compartir imágenes (registry) Contenedor escribible asociado Volúmenes sin versionado Diferentes FS base AUFS (union fs, CoW de archivos) Device Mapper (ThinP, CoW de bloques) BtrFS (subvolumes, snapshots) Mas a futuro (ZFS, OverlayFS, etc) Depende de distribución/disponibilidad Comparación en Project Atomic
  • 6. Imágenes Obtención/Creación docker pull/run de Docker Hub, o Docker registry propio docker commit contenedor->imagen docker export -> .tgz -> docker import Crearlas a partir de Dockerfiles Pueden tener capas a su vez “Herencia” entre capas ya creadas Capas “padre” están 1 sola vez en disco/cache Apuntar a menor tamaño busybox<alpine <debian<ubuntu Ubuntu 14.04 +npm +aplicación 1 +jvm +aplicación 3 +aplicación 2 +memcache CentOS 6 +jboss +ruby 1.9.1 +ruby 2.1.4 +aplicación 4 +aplicación 5
  • 7. Que se define en este ejemplo? Imagen base (con versión) Variables de entorno para construcción Comandos a ejecutar en construcción Archivos a agregar Volúmenes del contenedor Puertos que se exponen Comando que se ejecuta por defecto Cada línea operativa agrega capa, usar volúmenes para directorios transitorios Dockerfiles FROM ubuntu:trusty ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get -yq install mysql-server-5.6 ADD my.cnf /etc/mysql/conf.d/my.cnf ADD run.sh /run.sh VOLUME ["/etc/mysql", "/var/lib/mysql"] EXPOSE 3306 CMD ["/run.sh"] docker build <directorio del dockerfile> --tag mysql
  • 8. Volúmenes docker run … -v /opt/c/mysql1data:/var/lib/mysql .... Directorio del disco -> directorio del contenedor docker run … --volumes-from contenedor1 … Usa volúmenes de otro contenedor (contenedor1 no tiene porque estar corriendo) Filesystem Contenedor /opt/c/mysql1data/var/lib/mysql Contenedor Contenedor1 /var/lib/mysql /var/lib/mysql Usos: backups, crons, transporte, área de compartición entre varios contenedores, captura de logs, persistir datos en SAN/NFS, filesystems distribuidos, etc
  • 9. Networking Modo bridge (net=bridge/defecto) Crea bridge docker0 Contenedores en subnet detrás del bridge Puertos expuestos enmascarados en eth0 172.17.0.2 172.17.0.3 172.17.42.1 200.40.133.133 contenedor 1 eth0 docker0 contenedor 2 Modo host (net=host) Usa la red del host Publica directamente servicios en la misma interfaz de red Modo none (net=none) No configura la red Útil para configurar red por nuestros propios medios después, o usos que no requieren red Modo container (net=container_id) Similar a modo host, pero usa la red de otro contenedor, previamente creado, en vez de la del host “eth0”
  • 10. Enlaces entre contenedores Contenedor1 docker run -p <puerto> --name Contenedor1 ... Dockerfile EXPOSE <puerto> Contenedor2 docker run --link Contenedor1 ... ● <puerto> es accesible directamente ● variables de entorno que dicen puerto/ip ● /etc/hosts contiene Contenedor1 Contenedores “embajador” sirven de puente para enlazar contenedores entre distintos servidores físicos/VMs Contenedor1 Contenedor2Embajador1 Embajador2
  • 11. Agrupando contenedores wordpress: image: wordpress links: - db:mysql ports: - 8080:80 db: image: mariadb environment: MYSQL_ROOT_PASSWORD: example ● Trata varios contenedores como una unidad ● Define cómo se construye/obtiene c/u ● Define puertos y volúmenes compartidos ● Permite definir variables de entorno, como se ve el grupo desde afuera ● archivo de definición yaml Docker-compose
  • 12. Algunas herramientas para redes docker-machine Prepara máquinas/vms para correr docker docker-swarm/fleet/etc distribuye contenedores entre máquinas Consul directorio dinámico de servicios Kubernetes Ejecución de grupos de contenedores en clúster
  • 13. Donde correrlos? Cluster Mesosphere RedHat Openshift Openstack/Magnum Amazon ECS Google Compute engine IBM Bluemix PAAS varios (Flynn, Deis, etc) etc Maquina Cualquier linux con kernel reciente corre Distribuciones orientadas a contenedores CoreOS Rancher Atomic OS Ubuntu Snappy VMWare Photon Intel ClearLinux
  • 15. Que debería tener un contenedor? imagen conf datos ● Inmutable ● En repositorio privado/público ● Dockerfile para crearla ● Versionada ● aplicación sigue 12factor.net ● Pasada x entorno/ etcd/ volúmenes/ línea de comando ● Depende/informa de contexto ● Dónde están mis datos? ● Debug info? ● Claves/certs ● En volúmenes ● Distintos sets de datos ● Accesible desde distintos procesos/contenedores ● Respaldos/crons trabajan fuera de este contenedor Contenedor ideal
  • 16. Backups imagen conf datos ● Definido en Dockerfile ● Respaldado en repositorio ● Solo cuando se (re)construye ● Versionado en git ● Sólo cuando hay cambios de configuración ● Lo que importa respaldar o distribuir ● En volúmenes
  • 17. Reuso de imágenes Webserver DB Aplicación Webserver DB Patrones para imágenes reusables ● Misma distribución base ● Mismas herramientas base ● Bibliotecas comunes ● muchos daemons? runit/ monit/ supervisord/ etc ● usuarios estandarizados
  • 18. Continuous Delivery Configuración/Datos pueden variar dependiendo del contextoDesarrollo Testing QA Staging Producción Imagen se mantiene inmutable en todo el proceso UsuariosRouter Las etapas pueden correr en distintos equipos físicos, uso de registry para transporte
  • 19. Escalamiento vertical VM compartida VM dedicada Servidor(es) dedicado Cloud de bajos recursos Cloud de altos recursos La aplicación no cambia por mucho que el ambiente donde corre si lo hace Hardware/ambientes existentes se puede reusar o compartir con otras aplicaciones al no estar atados unos con otros
  • 20. docker run -v /server/datos --name datacontainer1 tianon/true /bin/true Contenedores de datos Server Backup Reportes cron shell 125 bytes ● No depende de donde queda en host ● Permisos/uid/gid consistentes ● No tienen que estar corriendo un proceso para usarse inicialización Data container
  • 21. NO usar como VMs Monitoreo ● No correr agente ● /sys/fs/cgroup para métricas ● Monitorear aplicación/puertos ● Sysdig Logs ● Montar /dev/log como volumen y usarlo desde otro contenedor con (r)syslog (syslog-docker) ● docker logs muestra stdout/stderr de lo que corre dentro Acceso a contenedor en ejecución ● No correr sshd en contenedor ● Usar docker exec para shell/comando ● Usar volúmenes para archivos que tengan que ser accedidos por otros procesos/contenedores (cron, backup) Invocación ● Se pueden crear y descartar muy rápido ● Eficientes en memoria, pueden quedar cargados y enviarles tráfico desde balanceador cuando se precisen ● Fácil iterar con ellos ● Persistencia vía volúmenes
  • 22. Adopción gradual Convivencia con HW/SW existente Implementación de nuevos servicios Necesidad de correr apps que requieren librerías/ dependencias diferentes/ conflictivas con lo instalado Agilizar desarrollo/ testing/ QA Replicación sistemas/ servicios para testear cambios/ configuraciones Implica cambio de mentalidad, no forzar si no se entiende
  • 23. Pequeña escala Pruebas limpias de software/servicios Aislación de aplicaciones en escritorio Alternativa a manejo de paquetes Instalación simple de sistemas complejos Replicación ambientes de producción Entornos rápidos de otras distribuciones
  • 25. Otros enfoques CBSD, Jetpack (para FreeBSD, Jails+imágenes) Joyent Triton (containers docker/linux en SmartOS) Ubuntu LXD (Hypervisor orientado a contenedores) CoreOS Rocket (Reemplazo de docker, más modular) Hyper.sh (carga imágenes docker como vm) cargo (uso de imágenes docker en lxc) kernels livianos para VMs (unikernels, rumpkernels) pullcontainer (chroots usando imágenes docker) systemd (está adoptando mucha tecnología de contenedores)
  • 27. Documentación oficial https://docs.docker.com/ Tutorial https://www.docker.com/tryit/ Blog de JPetazzoni http://jpetazzo.github.io/ The Docker Book http://www.dockerbook.com Awesome docker https://github.com/veggiemonk/awesome-docker Docker cheat sheet https://github.com/wsargent/docker-cheat-sheet Docker resources https://github.com/hangyan/docker-resources