SlideShare una empresa de Scribd logo
Docker
Linux Containers for Dummies
Gustavo Muslera
Marzo 2014
Problemas con enfoques actuales
● Conflictos en librerías/aplicaciones: Servicio A requiere X 0.95,
servicio B requiere X 1.03, para que convivan en un mismo
hardware/vm hay que hacer trucos
● Implicaciones de seguridad de muchas aplicaciones conviviendo en
un mismo hardware/vm
● VMs cargan sistema completo, requieren uso extra de memoria, cpu,
disco, a veces bastante importante
● Cache de disco en VMs afecta overcommiting para otras VMs, pero
no tener cache de disco afecta negativamente performance
● Testing de aplicaciones implica replicación de máquinas completas.
Es “caro” tener para cada desarrollador un ambiente idéntico al de
producción. Desarrollo/testing/producción deberían ser lo mas
parecido posible
● Alta disponibilidad implica mover/cargar VMs completas por la red
● Costos extras (mas máquinas) en nubes si se quieren compartimentar
aplicaciones
● Algunos paquetes/versiones estan para una distribución y no para
otras. Instalarlos implica instalar de fuente o crear nueva vm/maquina
• "chroot en esteroides"
• aislacion de procesos del resto del sistema, su propia
red, procesos, usuarios, y filesystem
• cgroups para limitar uso de recursos del sistema
(cpu/red/disco/etc)
• Pueden usarse para levantar aplicaciones individuales
en sistemas restringidos, sin cargar sistemas
completos. Pueden verse como contenedores (de
puerto) que llevan dentro la aplicación independiente
completa.
• En linux: openvz, vserver, lmctfy, lxc
• Otros SO tienen conceptos similares: BSD Jails, Solaris
Zones
Containers
• Originalmente: Linux 3.8+, aufs, lxc y 64 bits. Ubuntu
12.04 y 13.04 eran las distribuciones oficiales, pero
corría en debian, suse, y muchos “clouds”
• En 0.7 soporto storage drivers, agregando device
mapper/btrfs/vfs. Se agrega RHEL 6.5 (y centos,
fedora, etc) que no tenía soporte aufs.
• En 0.8 “soporta” OS X, corriendo linux en una vm
liviana y comunicándose con el docker del vm
• En 0.9 agregaron soporte de drivers de ejecución,
podría andar con openvz, bsd jails, solaris zones,
chroot, qemu y otros. Y libcontainer, para hablar
directamente con el kernel, ya no es obligatorio lxc.
Docker: Requerimientos
Ejemplo de sesión manual
# docker pull base
# docker run -i -t base /bin/bash
root@15c0db264611:/# apt-get install memcached
root@15c0db264611:/# exit
# docker ps -a
ID IMAGE COMMAND CREATED STATUS PORTS
7717ce712162 base:latest /bin/bash 2 minutes ago Exit 0
# docker commit 7717ce712162 test/mcached
# docker run -d -p 11211 test/mcached memcached -u daemon
# docker ps
ID IMAGE COMMAND CREATED STATUS PORTS
66a2cbdda35d test/mcached:latest memcached -u daemon 3 minutes ago Up 3 minutes 49153->11211
Que paso en el disco?
base
7717ce712162
test/mcached
66a2cbdda35d
docker pull base
apt-get install memcached
docker run ...
Contenedores creados
fbc9c18e0ac8
aff8363240b1 apt-get install nginx
docker run -v ...
ed464b61c53d
docker run -v ...
27d06e9d3eea
vi nginx.conf
Docker builder
# Dockerfile para nginx + php-fpm
FROM ubuntu:12.10
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" >
/etc/apt/sources.list.d/precise.list && apt-get update
RUN apt-get install -y nginx php5-fpm php5-pgsql php5-curl php5-json php-apc
RUN echo "cgi.fix_pathinfo = 0;" >> /etc/php5/fpm/php.ini
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
ADD ./nginx-site.conf /etc/nginx/sites-available/default
EXPOSE 80
CMD service php5-fpm start && nginx
docker build nginxphp/ (subdirectorio con archivo Dockerfile + extras)
Va a ejecutar paso por paso el script, y tirar a consola el id de la imagen generada, similar a receta de
puppet o vagrant
docker run -d -p 8080:80 -v=/sitios/nginxphp-www:/usr/share/nginx/www nginxphp
Repositorio central
• Almacen de imágenes ya hechas, base, ubuntu, centos,
logstash, mongodb, etc
• Motor de busqueda en http://index.docker.io
• comandos docker pull imágenes, login para
autenticación y push de imagenes, search para buscar
• APIs para acceder al index server (donde esta la
búsqueda, metadatos, usuarios, etc) y al registry server
(donde estan las imagenes)
• Se pueden tener repositorios internos
Administración avanzada
• Remote API: Escucha por defecto en puerto 4243,
invocaciones tipo POST /images/(nombre)/comando, con
librerías existentes para python, ruby, js, java, php, go
• Varias WebUI simples, p/ej en
https://github.com/crosbymichael/dockerui
• Integración con OpenStack. Empezó siendo driver de
Nova pero para la siguiente versión lo es de Heat, el
orquestador de servicios
• Integración con OpenShift de RedHat
• Flynn,Deis,Shipyard,CoreOS,Dokku, y muchos otros

Más contenido relacionado

La actualidad más candente

Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
quaip
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
CLEFormación
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Nicolás Bello Camilletti
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
Mario IC
 
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
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
Mariano German Egui
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
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
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
Restorando
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
ITPAMI
 
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
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
Irene Alonso Candelario
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
Martin Kenneth Michalsky
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
Erasmo Domínguez Jiménez
 
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
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
Gabriel Eisbruch
 
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
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
Joselu Marina
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
Gustavo Muslera
 

La actualidad más candente (20)

Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
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
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
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
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación 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
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
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...
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
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...
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 

Destacado

Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan Mantika
Flavia Marinelli
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
Jérôme Petazzoni
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
Antonio Gallego
 
Virtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novioVirtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novio
Rodolfo Pilas
 
Contenedores o containers
Contenedores o containersContenedores o containers
Contenedores o containersandresgaravito
 
Docker: Why containers are our new friends?
Docker: Why containers are our new friends?Docker: Why containers are our new friends?
Docker: Why containers are our new friends?
Juan Carlos Fernández Galante
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
Mario Garcia-Valdez
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
Federico Damián Lozada Mosto
 
Arquitecturas de microservicios - Codemotion 2014
Arquitecturas de microservicios  -  Codemotion 2014Arquitecturas de microservicios  -  Codemotion 2014
Arquitecturas de microservicios - Codemotion 2014
Ernesto Hernández Rodríguez
 
Deploying Containers with Rancher
Deploying Containers with RancherDeploying Containers with Rancher
Deploying Containers with Rancher
Chris Tankersley
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
Aater Suleman
 
Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)
Victor M. Fernández
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
Elio Rojano
 
WTF Is Rancher?
WTF Is Rancher?WTF Is Rancher?
WTF Is Rancher?
Chris Tankersley
 
Intro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratchIntro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratch
John Culviner
 
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
melidevelopers
 

Destacado (16)

Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan Mantika
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
 
Virtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novioVirtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novio
 
Contenedores o containers
Contenedores o containersContenedores o containers
Contenedores o containers
 
Docker: Why containers are our new friends?
Docker: Why containers are our new friends?Docker: Why containers are our new friends?
Docker: Why containers are our new friends?
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Arquitecturas de microservicios - Codemotion 2014
Arquitecturas de microservicios  -  Codemotion 2014Arquitecturas de microservicios  -  Codemotion 2014
Arquitecturas de microservicios - Codemotion 2014
 
Deploying Containers with Rancher
Deploying Containers with RancherDeploying Containers with Rancher
Deploying Containers with Rancher
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 
Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
WTF Is Rancher?
WTF Is Rancher?WTF Is Rancher?
WTF Is Rancher?
 
Intro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratchIntro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratch
 
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
 

Similar a Presentación Docker

Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
Alejandro Hernández
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
Osvaldo
 
Virtualización con Xen
Virtualización con XenVirtualización con Xen
Virtualización con Xen
Saúl Ibarra Corretgé
 
Genesis Campos
Genesis CamposGenesis Campos
Genesis Campos
Genesis Campos
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
Mauro Parra-Miranda
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
juliananena
 
Manejo de sistemas operativos en power point
Manejo de sistemas operativos en power point Manejo de sistemas operativos en power point
Manejo de sistemas operativos en power point Montse Perez
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
wpargentina
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfectobetabeers
 
Slackware
SlackwareSlackware
Slackware
jeferduran
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
paonenajessi
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
paonenajessi
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
JohannaCamila
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
JohannaCamila
 
Julissa
JulissaJulissa
Julissa
zanbbrano
 
Julissa
JulissaJulissa
Julissa
zanbbrano
 
Ambar galeas
Ambar galeasAmbar galeas
Ambar galeas
ambar108galeas
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
David Ramirez
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
David Ramirez
 

Similar a Presentación Docker (20)

Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
 
Virtualización con Xen
Virtualización con XenVirtualización con Xen
Virtualización con Xen
 
Genesis Campos
Genesis CamposGenesis Campos
Genesis Campos
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
 
Manejo de sistemas operativos en power point
Manejo de sistemas operativos en power point Manejo de sistemas operativos en power point
Manejo de sistemas operativos en power point
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Slackware
SlackwareSlackware
Slackware
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
 
Julissa
JulissaJulissa
Julissa
 
Julissa
JulissaJulissa
Julissa
 
todo sobre linux
todo sobre linuxtodo sobre linux
todo sobre linux
 
Ambar galeas
Ambar galeasAmbar galeas
Ambar galeas
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 

Último

DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 

Último (20)

DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 

Presentación Docker

  • 1. Docker Linux Containers for Dummies Gustavo Muslera Marzo 2014
  • 2. Problemas con enfoques actuales ● Conflictos en librerías/aplicaciones: Servicio A requiere X 0.95, servicio B requiere X 1.03, para que convivan en un mismo hardware/vm hay que hacer trucos ● Implicaciones de seguridad de muchas aplicaciones conviviendo en un mismo hardware/vm ● VMs cargan sistema completo, requieren uso extra de memoria, cpu, disco, a veces bastante importante ● Cache de disco en VMs afecta overcommiting para otras VMs, pero no tener cache de disco afecta negativamente performance ● Testing de aplicaciones implica replicación de máquinas completas. Es “caro” tener para cada desarrollador un ambiente idéntico al de producción. Desarrollo/testing/producción deberían ser lo mas parecido posible ● Alta disponibilidad implica mover/cargar VMs completas por la red ● Costos extras (mas máquinas) en nubes si se quieren compartimentar aplicaciones ● Algunos paquetes/versiones estan para una distribución y no para otras. Instalarlos implica instalar de fuente o crear nueva vm/maquina
  • 3. • "chroot en esteroides" • aislacion de procesos del resto del sistema, su propia red, procesos, usuarios, y filesystem • cgroups para limitar uso de recursos del sistema (cpu/red/disco/etc) • Pueden usarse para levantar aplicaciones individuales en sistemas restringidos, sin cargar sistemas completos. Pueden verse como contenedores (de puerto) que llevan dentro la aplicación independiente completa. • En linux: openvz, vserver, lmctfy, lxc • Otros SO tienen conceptos similares: BSD Jails, Solaris Zones Containers
  • 4. • Originalmente: Linux 3.8+, aufs, lxc y 64 bits. Ubuntu 12.04 y 13.04 eran las distribuciones oficiales, pero corría en debian, suse, y muchos “clouds” • En 0.7 soporto storage drivers, agregando device mapper/btrfs/vfs. Se agrega RHEL 6.5 (y centos, fedora, etc) que no tenía soporte aufs. • En 0.8 “soporta” OS X, corriendo linux en una vm liviana y comunicándose con el docker del vm • En 0.9 agregaron soporte de drivers de ejecución, podría andar con openvz, bsd jails, solaris zones, chroot, qemu y otros. Y libcontainer, para hablar directamente con el kernel, ya no es obligatorio lxc. Docker: Requerimientos
  • 5. Ejemplo de sesión manual # docker pull base # docker run -i -t base /bin/bash root@15c0db264611:/# apt-get install memcached root@15c0db264611:/# exit # docker ps -a ID IMAGE COMMAND CREATED STATUS PORTS 7717ce712162 base:latest /bin/bash 2 minutes ago Exit 0 # docker commit 7717ce712162 test/mcached # docker run -d -p 11211 test/mcached memcached -u daemon # docker ps ID IMAGE COMMAND CREATED STATUS PORTS 66a2cbdda35d test/mcached:latest memcached -u daemon 3 minutes ago Up 3 minutes 49153->11211
  • 6. Que paso en el disco? base 7717ce712162 test/mcached 66a2cbdda35d docker pull base apt-get install memcached docker run ... Contenedores creados fbc9c18e0ac8 aff8363240b1 apt-get install nginx docker run -v ... ed464b61c53d docker run -v ... 27d06e9d3eea vi nginx.conf
  • 7. Docker builder # Dockerfile para nginx + php-fpm FROM ubuntu:12.10 RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list.d/precise.list && apt-get update RUN apt-get install -y nginx php5-fpm php5-pgsql php5-curl php5-json php-apc RUN echo "cgi.fix_pathinfo = 0;" >> /etc/php5/fpm/php.ini RUN echo "daemon off;" >> /etc/nginx/nginx.conf ADD ./nginx-site.conf /etc/nginx/sites-available/default EXPOSE 80 CMD service php5-fpm start && nginx docker build nginxphp/ (subdirectorio con archivo Dockerfile + extras) Va a ejecutar paso por paso el script, y tirar a consola el id de la imagen generada, similar a receta de puppet o vagrant docker run -d -p 8080:80 -v=/sitios/nginxphp-www:/usr/share/nginx/www nginxphp
  • 8. Repositorio central • Almacen de imágenes ya hechas, base, ubuntu, centos, logstash, mongodb, etc • Motor de busqueda en http://index.docker.io • comandos docker pull imágenes, login para autenticación y push de imagenes, search para buscar • APIs para acceder al index server (donde esta la búsqueda, metadatos, usuarios, etc) y al registry server (donde estan las imagenes) • Se pueden tener repositorios internos
  • 9. Administración avanzada • Remote API: Escucha por defecto en puerto 4243, invocaciones tipo POST /images/(nombre)/comando, con librerías existentes para python, ruby, js, java, php, go • Varias WebUI simples, p/ej en https://github.com/crosbymichael/dockerui • Integración con OpenStack. Empezó siendo driver de Nova pero para la siguiente versión lo es de Heat, el orquestador de servicios • Integración con OpenShift de RedHat • Flynn,Deis,Shipyard,CoreOS,Dokku, y muchos otros