SlideShare une entreprise Scribd logo
1  sur  57
Introducción a Docker
Benito Cuesta – Salvador González
1 de Marzo de 2016
Marzo 2016 www.opencanarias.com 2
● Experiencia del INTA con Docker (6 min)
– Jesús Garrido (INTA)
– Antonio Lara (INTA)
● Introducción a Docker (1 h 27 min)
– Benito Cuesta (Open Canarias)
– Salvador González (Open Canarias)
Marzo 2016 www.opencanarias.com 3
Índice
● Presentación
● Dockers: Definición y características
● Getting Started
● Delivery con Kubernetes
● Microservicios. Estilo arquitectónico. Ventajas de
dockers para una arquitectura de microservicios
● Ciclo de vida con Devops / Integración Continua
● Caso práctico: Cluster de LibreOffice con Docker
Presentación
Marzo 2016 www.opencanarias.com 5
Open Canarias
Empresa de servicios y suministros
TIC fundada en 1996
Actualmente tiene implantación
nacional y con presencia
internacional en México
Está especializada en productos y
servicios TI, además de proyectos de
alto riesgo tecnológico
Business Partner de IBM
Áreas de
servicio
Servicios de
Ingeniería del
Software
Servicios de
Infraestructura
TIC
Servicios
externos
Marzo 2016 www.opencanarias.com 6
Servicios de
Ingeniería del Software
Proporcionan soluciones a diferentes aspectos del
ciclo de vida de aplicaciones, con especial énfasis
en el incremento de la productividad y la calidad en
los procesos y productos de trabajo vinculados a
dicho ciclo de vida
Fundamentan estas soluciones en las capacidades
en MDE (Model Driven Engineering), un nuevo
paradigma de la Ingeniería del Software en el que
Open Canarias ha sido pionero y contribuidor a
varios estándares
Con MDE se construyen herramientas que
automatizan procesos y tareas del ciclo de vida del
software, reduciendo los tiempos de entrega, al
mismo tiempo que se mejora la calidad al reducir
las tareas manuales propensas a errores
EstructuradelosServicios
Desarrollo de Herramientas
Modernización del Software
Aseguramiento de la calidad
Marzo 2016 www.opencanarias.com 7
Antes de empezar...
● “La complejidad cada vez mayor de las
aplicaciones y la necesidad de acelerar el
desarrollo están ejerciendo aún más presión
sobre la infraestructura, procesos y equipos de TI.”
● https://www.redhat.com/es/insights/containers
Marzo 2016 www.opencanarias.com 8
Otra cita...
● “Los líderes en I&O deben mejorar las estrategias
de implementación de servidores o crearán
infraestructuras incapaces de dar soporte a la
siguiente generación de aplicaciones.”
– IT market clock for server virtualization and operanting
environments
– 16/09/2014. GARTNER N.º: G00262842
Marzo 2016 www.opencanarias.com 9
Un buen libro para empezar
● The Docker Book
– James Turnbull
– Agosto, 2014
– www.dockerbook.com
Definición y características
Marzo 2016 www.opencanarias.com 11
¿Qué es docker?
● “Es un proyecto open source para empaquetar, transportar y ejecutar
cualquier aplicación como un contenedor ligero”.
● Su versión inicial se publica el 13 de Marzo de 2013 y está escrito en el
lenguaje GO.
● Se trata de un nuevo modelo de virtualización que crea una capa de
abstracción con el S.O.
● Un contenedor conforma el contexto de ejecución de una aplicación. Está
compuesto de:
● Sistema de ficheros
● Procesos
● Memoria
● … y todo aislado del S.O huésped
Marzo 2016 www.opencanarias.com 12
Componentes
● Libcontainer (Derivado de LXC).
● Linux kernel namespaces (aislamiento del sistema
de ficheros, red y procesos).
● Aislamiento de los recursos (Cpu, Memoria, etc)
por medio de los cgroups.
● Copy-on-write
● Logging. Salidas de la línea de comando
accesibles con el cliente docker.
● Consola interactiva.
Marzo 2016 www.opencanarias.com 13
La comunidad de Docker
● 1200 contribuidores al proyecto Docker
● 100,000 aplicaciones dockerizadas
● Entre 3 y 4 millones de desarrolladores usando
Docker
● 300 millones de descargas
● 32,000 proyectos relacionados con Docker
● El 70% de las empresas TI están adoptando Docker
– Fuente: SD Times
Marzo 2016 www.opencanarias.com 14
Nuevo modelo
Partes comunes
Marzo 2016 www.opencanarias.com 15
Nueva visión del
Sistema Operativo
● Con el nuevo modelo de contenedores podemos
abstraernos del S.O. donde corre el motor Docker.
● Diseñados para un mundo Cloud, distribuido.
● Los nuevos Sistemas Operativos
(BareMetal/Virtual)
Marzo 2016 www.opencanarias.com 16
Registro
● Registro
– Registro público (Docker Hub)
● > 10.000 imágenes disponibles
– Registro privado
● Sólo accesible bajo autorización. Es de pago.
● Registro local
– Este registro se instala por medio de un contenedor
Docker para centralizar las imágenes de los
contenedores
Marzo 2016 www.opencanarias.com 17
Ventajas de Dockers
Fuente: https://www.redhat.com/es/insights/containers
Getting Started
Marzo 2016 www.opencanarias.com 19
Instalación
● En linux se hace uso de los comandos de gestión
de paquetes habituales
● Para Windows y Mac se hace uso de un programa
llamado “docker-machine”
● Docker es un demonio que expone una interfaz
REST
Marzo 2016 www.opencanarias.com 20
Linux / Mac / Windows
Marzo 2016 www.opencanarias.com 21
Comandos iniciales
● docker (lista los posibles comandos)
● docker version (versión del demonio y del cliente)
● docker info (información del sistema)
Marzo 2016 www.opencanarias.com 22
Nuestro primer contenedor
● docker run -i ubuntu echo Hello World
– run Ejecutar un contenedor→
– -i Modo interactivo→
– ubuntu Imagen a usar en el contenedor→
– echo Hello World Comando a ejecutar→
● Flujo:
– Busca la imagen localmente, luego en repositorios
centrales.
Marzo 2016 www.opencanarias.com 23
Imágenes
● Una imagen está formada
por capas (layers) que se
montan unas encima de
otras. Todas en modo sólo
lectura.
● La última capa se monta
como lectura/escritura y
da lugar al contenedor.
● Las capas usan el patrón
“copy on write”
Marzo 2016 www.opencanarias.com 24
Comandos imágenes
● docker images
● docker run -t -i --name test01 ubuntu /bin/bash
(ubuntu:latest)
● docker run -t -i --name test02 centos:centos6
/bin/bash
● docker pull ubuntu:14.04
● docker pull sgonzalez/centosopen:centos5
● docker search centos
Marzo 2016 www.opencanarias.com 25
Crear imágenes
● docker commit (no recomendado)
– docker run -it centos /bin/bash
– yum upgrade && yum install httpd
– vi /var/www/html/index.html
– exit
– docker commit <containerID> sgonzalez/apache:webopen
● docker build
– Consiste en un fichero (Dockerfile) de instrucciones para
construir las imágenes
Marzo 2016 www.opencanarias.com 26
Dockerfile
● Comandos más habituales
– FROM De que imagen partimos para crear la nueva→
– MAINTEINER Quien mantiene el contenedor→
– RUN Ejecuta una instrucción en el contenedor→
– ADD Añade un fichero o carpeta al contenedor→
– ENV Establece una variable de entorno en el contenedo→
– EXPOSE Indica que se va a exponer un puerto del→
contenedor
– ENTRYPOINT / CMD Qué se ejecuta→
Marzo 2016 www.opencanarias.com 27
entrypoint / cmd
● ENTRYPOINT define el proceso a ejecutar
– Por defecto es “/bin/sh -c”
● CMD son los parámetros del proceso
● Por ejemplo:
– CMD [“/usr/bin/top”]
– docker run -i -t myubuntu (/bin/sh -c /usr/bin/top)
– docker run -i -t myubuntu bash (/bin/sh -c bash)
– ENTRYPOINT ["/bin/cat"]
– docker run -it catimg /etc/passwd (/bin/cat /etc/passwd)
Marzo 2016 www.opencanarias.com 28
Contenedores
● Hacen uso de una imagen como base y pueden
contener uno o más procesos.
● Un contenedor Docker es:
– Una instancia de una imagen Docker
– Un conjunto de operaciones asociadas a su ciclo de
vida:
● Crear, Destruir, Arrancar, Reiniciar o Parar
– Un entorno de ejecución
Marzo 2016 www.opencanarias.com 29
Comandos contenedores
● docker run -d ubuntu /bin/sh -c "while true; do echo
Hello World; sleep 1; done"
docker ps [-a] docker inspect <ID>
docker attach <ID> docker stop <ID>
docker start <ID> docker rm [-f] <ID>
docker logs [-f] <ID> docker create <image>
docker top <ID> docker build [-f dockerfile] <dir>
docker exec <ID> <cmd> docker load / save
Marzo 2016 www.opencanarias.com 30
Uso de contenedores
● Data Volumes
– Dockerfile
● VOLUME [ “/var/log/http” ]
– Docker run
● docker run -v [rutahost:]rutacontenedor[:rw,:ro]
● Data Volume Containers
● docker run --volumes-from datacontainer …
● Links
● (1) docker run -d --name database01 …
● (2) docker run -d --name web --link database01:db ...
Marzo 2016 www.opencanarias.com 31
Data Volume Containers
db1
dbstore
db2
--volumes-from
dbstore --volumes-from
dbstore
docker create -v /dbdata --name dbstore ubuntu /bin/true
docker run -d --volumes-from dbstore --name db1 training/postgres
docker run -d --volumes-from dbstore --name db2 training/postgres
/var/lib/docker/volumes/f30d….959c7d/_data
Marzo 2016 www.opencanarias.com 32
Post & Link Containers
HOST
Con EXPOSE:
● Se expone un puerto del
contenedor al host.
-p [<host_port>:]<cont_port>
Cuando se “linkan” dos
contenedores pasan dos
cosas:
● Se crean variables de
entorno
<name>_PORT_<port>_<protocol>
● Se modifica el /etc/hosts docker run -d --name db -p 5432 training/postgres
docker run -it --link db:db -p 80:80 --name myapp ubuntu bash
/etc/hosts
172.17.0.2 db
myapp db
eth0
192.168.1.100
eth0
172.17.0.3
eth0
172.17.0.2
docker0
172.17.0.1
80 5432
80 6789
Delivery con Kubernetes
Marzo 2016 www.opencanarias.com 34
Orquestación
● Diferentes plataformas de orquestación
● Kubernetes (Proyecto de Google, 2014)
● Mesos (Proyecto apache, 2015)
● Docker Swarm (Proyecto de Docker, 2015)
● Kubernetes (2014)
● Plataforma para automatizar el despliegue, escalado y uso
de contenedores sobre un cluster de servidores.
● El sistema es altamente portable (public, private, hybrid,
multi-cloud)
Marzo 2016 www.opencanarias.com 35
Cluster Kubernetes
● El Cluster está compuesto por...
– Número impar de servidores de gestión (>=3)
– Ilimitado número de nodos de trabajo (minions)
● Cita
– “Hay que tratar los servidores como ganado y no como
mascotas”
Marzo 2016 www.opencanarias.com 36
Arquitectura
Microservicios
Estilo Arquitectónico
Marzo 2016 www.opencanarias.com 38
Microservices Architecture
MSA
Fuente: http://martinfowler.com/articles/microservices.html
Marzo 2016 www.opencanarias.com 39
Estructura Organizativa
Marzo 2016 www.opencanarias.com 40
Estructura Organizativa
Marzo 2016 www.opencanarias.com 41
Dockers & MSA
● Cloud Ready
● Simplificación de los
despliegues
● Capacidad de escalado
dinámico y automático
● Portabilidad de las
soluciones
● Reutilización
● Facilita la Integración
Contínua
Ciclo de vida con DevOps
Integracion Continua
con Dockers
Marzo 2016 www.opencanarias.com 43
DevOps
Marzo 2016 www.opencanarias.com 44
Integración Continua
Marzo 2016 www.opencanarias.com 45
Integración Continua
Marzo 2016 www.opencanarias.com 46
Dockers for CI
FROM ubuntu:14.04
MAINTAINER bcuesta@opencanarias.es
ENV REFRESHED_AT 2016-03-01
RUN apt-getupdate -qq && apt-getinstall-qqy curl↩
apt-transport-https
RUN curl https://get.docker.io/gpg | apt-key add -
RUN echo deb http://get.docker.io/ubuntu dockerm ain > /etc/apt/↩
sources.list.d/docker.list
RUN apt-getupdate -qq && apt-getinstall-qqy iptablesca-↩
certificates lxc openjdk-7-jdk git-core lxc-docker
ENV JENKINS_HOME /opt/jenkins/data
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
RUN mkdir -p $JENKINS_HOME/plugins
RUN curl-sf-o /opt/jenkins/jenkins.w ar-L $JENKINS_M IRROR/w ar-↩
stable/latest/jenkins.war
RUN forplugin in chucknorrisgreenballsscm -apigit-clientgit↩
ws-cleanup ;
do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi 
-L $JENKINS_M IRROR/plugins/${plugin}/latest/${plugin}.hpi↩
; done
ADD ./dockerjenkins.sh /usr/local/bin/dockerjenkins.sh
RUN chmod +x /usr/local/bin/dockerjenkins.sh
VOLUME /var/lib/docker
EXPOSE 8080
ENTRYPOINT [ "/usr/local/bin/dockerjenkins.sh" ]
Fuente: The.Docker.Book. James Turnbull
● $ docker build -t↩
opencanarias/jenkins .
● $ docker run -p 8080:8080↩
--name jenkins↩
--privileged↩
-d opencanarias/jenkins
Marzo 2016 www.opencanarias.com 47
Dockers for CI
Marzo 2016 www.opencanarias.com 48
Dockers for CI
Ejemplos Prácticos
Marzo 2016 www.opencanarias.com 50
Docker LibreOffice
Servidor Linux 1
OpenOffice
2.1
Tomcat 5.5
APP1
Servidor Linux 2
OpenOffice
2.1
Tomcat 5.5
APP2
DocManager
Marzo 2016 www.opencanarias.com 51
Docker LibreOffice
Servidor Linux 1
Tomcat 5.5
APP1
Servidor Linux 2
Tomcat 5.5
APP2
DocManager
Client
Linux
LibreOffice
4.4LibreOffice
4.4LibreOffice
4.4LibreOffice
4.4LibreOffice
4.4
HAProxy
Load
Balancer
DocManager
Server
DocManager
Client
Marzo 2016 www.opencanarias.com 52
Docker LibreOffice
Marzo 2016 www.opencanarias.com 53
Compose
DocManagerData:
image: ubuntu
volumes:
- "/tmp/DOCManager"
- "/tmp/DOCManager/temp"
DocManagerServer:
image:docmanagerserver
links:
- "haproxy:haproxy"
volumes:
- "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib"
volumes_from:
- DocManagerData
ports:
- "1099:1099"
- "1234:1234"
haproxy:
image:haproxy
links:
- "libreoffice:libreoffice"
volumes:
- /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg
ports:
- "8997:8997"
- "1936:1936"
libreoffice:
image:libreoffice
environment:
- TCP_PORTS=8997
expose:
- "8997"
volumes_from:
- DocManagerData
Marzo 2016 www.opencanarias.com 54
Compose
DocManagerData:
image: ubuntu
volumes:
- "/tmp/DOCManager"
- "/tmp/DOCManager/temp"
DocManagerServer:
image: docmanagerserver
links:
- "haproxy:haproxy"
volumes:
- "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib"
volumes_from:
- DocManagerData
ports:
- "1099:1099"
- "1234:1234"
haproxy:
image: haproxy
links:
- "libreoffice:libreoffice"
volumes:
- /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg
ports:
- "8997:8997"
- "1936:1936"
libreoffice:
image: libreoffice
environment:
- TCP_PORTS=8997
expose:
- "8997"
volumes_from:
- DocManagerData
docker-compose up -d
Marzo 2016 www.opencanarias.com 55
Compose
DocManagerData:
image: ubuntu
volumes:
- "/tmp/DOCManager"
- "/tmp/DOCManager/temp"
DocManagerServer:
image: docmanagerserver
links:
- "haproxy:haproxy"
volumes:
- "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib"
volumes_from:
- DocManagerData
ports:
- "1099:1099"
- "1234:1234"
haproxy:
image: haproxy
links:
- "libreoffice:libreoffice"
volumes:
- /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg
ports:
- "8997:8997"
- "1936:1936"
libreoffice:
image: libreoffice
environment:
- TCP_PORTS=8997
expose:
- "8997"
volumes_from:
- DocManagerData
docker-compose scale libreoffice=5
Marzo 2016 www.opencanarias.com 56
Usos de Docker
● Ayudar a que nuestro entorno de desarrollo sea más rápido,
eficiente y más ligero. Los desarrolladores pueden compartir
los contenedores entre ellos.
● Ejecución de micro-servicios y aplicaciones consistentemente
entre diferentes entornos. (AWS, GCE, etc).
● Creación de entornos de test para la integración continua
como Jenkins por ejemplo.
● Creación y prueba de entornos complejos en máquinas
locales, antes de pasarlos a producción.
● Construcción de “sandboxes” ligeras para desarrollo, test, etc.
● SaaS y PaaS
Marzo 2016 www.opencanarias.com 57
Gracias
● info@opencanarias.com
● www.opencanarias.com
● www.linkedin.com/company/open-canarias-sl
● www.facebook.com/opencanarias
● www.google.com/+opencanarias
● @OpenCanarias

Contenu connexe

Tendances

Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerLuong Vo
 
Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Madhuri Kumari
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeOmar Al-Safi
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersRyan Hodgin
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 
PCF-VxRail-ReferenceArchiteture
PCF-VxRail-ReferenceArchiteturePCF-VxRail-ReferenceArchiteture
PCF-VxRail-ReferenceArchitetureVuong Pham
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatDavid Acevedo
 
Containerization & Docker - Under the Hood
Containerization & Docker - Under the HoodContainerization & Docker - Under the Hood
Containerization & Docker - Under the HoodImesha Sudasingha
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefitsAmit Manwade
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep diveWinton Winton
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionEric Gustafson
 
IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2David Ware
 

Tendances (20)

Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
PCF-VxRail-ReferenceArchiteture
PCF-VxRail-ReferenceArchiteturePCF-VxRail-ReferenceArchiteture
PCF-VxRail-ReferenceArchiteture
 
Red Hat
Red HatRed Hat
Red Hat
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeat
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Containerization & Docker - Under the Hood
Containerization & Docker - Under the HoodContainerization & Docker - Under the Hood
Containerization & Docker - Under the Hood
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2
 

En vedette

CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...E. Camden Fisher
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 

En vedette (6)

Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Comenzando con Docker en AWS
Comenzando con Docker en AWSComenzando con Docker en AWS
Comenzando con Docker en AWS
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 

Similaire à Introducción a Docker

Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
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 URJCMicael Gallego
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresJesús A. Rodríguez B.
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Santi Macias Rodriguez
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacionStivenLopez46
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfAngel Borroy López
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NETAdrian Diaz Cervera
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para DockerAngel Borroy López
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 

Similaire à Introducción a Docker (20)

TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
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
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los Contenedores
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
 
Docker4developers Codemotion2016
Docker4developers Codemotion2016Docker4developers Codemotion2016
Docker4developers Codemotion2016
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NET
 
Docker and networking
Docker and networkingDocker and networking
Docker and networking
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Migrando CI a Docker
Migrando CI a DockerMigrando CI a Docker
Migrando CI a Docker
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 

Plus de Open Canarias

Presentación corporativa
Presentación corporativaPresentación corporativa
Presentación corporativaOpen Canarias
 
Experiencia práctica con ITIL
Experiencia práctica con ITILExperiencia práctica con ITIL
Experiencia práctica con ITILOpen Canarias
 
Migración a LibreOffice
Migración a LibreOfficeMigración a LibreOffice
Migración a LibreOfficeOpen Canarias
 
LibreOffice from Collabora
LibreOffice from CollaboraLibreOffice from Collabora
LibreOffice from CollaboraOpen Canarias
 
Modernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaModernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaOpen Canarias
 
Migración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQLMigración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQLOpen Canarias
 
Inforsalud Recap Open Canarias 2014
Inforsalud Recap Open Canarias 2014Inforsalud Recap Open Canarias 2014
Inforsalud Recap Open Canarias 2014Open Canarias
 

Plus de Open Canarias (7)

Presentación corporativa
Presentación corporativaPresentación corporativa
Presentación corporativa
 
Experiencia práctica con ITIL
Experiencia práctica con ITILExperiencia práctica con ITIL
Experiencia práctica con ITIL
 
Migración a LibreOffice
Migración a LibreOfficeMigración a LibreOffice
Migración a LibreOffice
 
LibreOffice from Collabora
LibreOffice from CollaboraLibreOffice from Collabora
LibreOffice from Collabora
 
Modernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaModernización Dirigida por la Arquitectura
Modernización Dirigida por la Arquitectura
 
Migración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQLMigración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQL
 
Inforsalud Recap Open Canarias 2014
Inforsalud Recap Open Canarias 2014Inforsalud Recap Open Canarias 2014
Inforsalud Recap Open Canarias 2014
 

Dernier

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Dernier (20)

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Introducción a Docker

  • 1. Introducción a Docker Benito Cuesta – Salvador González 1 de Marzo de 2016
  • 2. Marzo 2016 www.opencanarias.com 2 ● Experiencia del INTA con Docker (6 min) – Jesús Garrido (INTA) – Antonio Lara (INTA) ● Introducción a Docker (1 h 27 min) – Benito Cuesta (Open Canarias) – Salvador González (Open Canarias)
  • 3. Marzo 2016 www.opencanarias.com 3 Índice ● Presentación ● Dockers: Definición y características ● Getting Started ● Delivery con Kubernetes ● Microservicios. Estilo arquitectónico. Ventajas de dockers para una arquitectura de microservicios ● Ciclo de vida con Devops / Integración Continua ● Caso práctico: Cluster de LibreOffice con Docker
  • 5. Marzo 2016 www.opencanarias.com 5 Open Canarias Empresa de servicios y suministros TIC fundada en 1996 Actualmente tiene implantación nacional y con presencia internacional en México Está especializada en productos y servicios TI, además de proyectos de alto riesgo tecnológico Business Partner de IBM Áreas de servicio Servicios de Ingeniería del Software Servicios de Infraestructura TIC Servicios externos
  • 6. Marzo 2016 www.opencanarias.com 6 Servicios de Ingeniería del Software Proporcionan soluciones a diferentes aspectos del ciclo de vida de aplicaciones, con especial énfasis en el incremento de la productividad y la calidad en los procesos y productos de trabajo vinculados a dicho ciclo de vida Fundamentan estas soluciones en las capacidades en MDE (Model Driven Engineering), un nuevo paradigma de la Ingeniería del Software en el que Open Canarias ha sido pionero y contribuidor a varios estándares Con MDE se construyen herramientas que automatizan procesos y tareas del ciclo de vida del software, reduciendo los tiempos de entrega, al mismo tiempo que se mejora la calidad al reducir las tareas manuales propensas a errores EstructuradelosServicios Desarrollo de Herramientas Modernización del Software Aseguramiento de la calidad
  • 7. Marzo 2016 www.opencanarias.com 7 Antes de empezar... ● “La complejidad cada vez mayor de las aplicaciones y la necesidad de acelerar el desarrollo están ejerciendo aún más presión sobre la infraestructura, procesos y equipos de TI.” ● https://www.redhat.com/es/insights/containers
  • 8. Marzo 2016 www.opencanarias.com 8 Otra cita... ● “Los líderes en I&O deben mejorar las estrategias de implementación de servidores o crearán infraestructuras incapaces de dar soporte a la siguiente generación de aplicaciones.” – IT market clock for server virtualization and operanting environments – 16/09/2014. GARTNER N.º: G00262842
  • 9. Marzo 2016 www.opencanarias.com 9 Un buen libro para empezar ● The Docker Book – James Turnbull – Agosto, 2014 – www.dockerbook.com
  • 11. Marzo 2016 www.opencanarias.com 11 ¿Qué es docker? ● “Es un proyecto open source para empaquetar, transportar y ejecutar cualquier aplicación como un contenedor ligero”. ● Su versión inicial se publica el 13 de Marzo de 2013 y está escrito en el lenguaje GO. ● Se trata de un nuevo modelo de virtualización que crea una capa de abstracción con el S.O. ● Un contenedor conforma el contexto de ejecución de una aplicación. Está compuesto de: ● Sistema de ficheros ● Procesos ● Memoria ● … y todo aislado del S.O huésped
  • 12. Marzo 2016 www.opencanarias.com 12 Componentes ● Libcontainer (Derivado de LXC). ● Linux kernel namespaces (aislamiento del sistema de ficheros, red y procesos). ● Aislamiento de los recursos (Cpu, Memoria, etc) por medio de los cgroups. ● Copy-on-write ● Logging. Salidas de la línea de comando accesibles con el cliente docker. ● Consola interactiva.
  • 13. Marzo 2016 www.opencanarias.com 13 La comunidad de Docker ● 1200 contribuidores al proyecto Docker ● 100,000 aplicaciones dockerizadas ● Entre 3 y 4 millones de desarrolladores usando Docker ● 300 millones de descargas ● 32,000 proyectos relacionados con Docker ● El 70% de las empresas TI están adoptando Docker – Fuente: SD Times
  • 14. Marzo 2016 www.opencanarias.com 14 Nuevo modelo Partes comunes
  • 15. Marzo 2016 www.opencanarias.com 15 Nueva visión del Sistema Operativo ● Con el nuevo modelo de contenedores podemos abstraernos del S.O. donde corre el motor Docker. ● Diseñados para un mundo Cloud, distribuido. ● Los nuevos Sistemas Operativos (BareMetal/Virtual)
  • 16. Marzo 2016 www.opencanarias.com 16 Registro ● Registro – Registro público (Docker Hub) ● > 10.000 imágenes disponibles – Registro privado ● Sólo accesible bajo autorización. Es de pago. ● Registro local – Este registro se instala por medio de un contenedor Docker para centralizar las imágenes de los contenedores
  • 17. Marzo 2016 www.opencanarias.com 17 Ventajas de Dockers Fuente: https://www.redhat.com/es/insights/containers
  • 19. Marzo 2016 www.opencanarias.com 19 Instalación ● En linux se hace uso de los comandos de gestión de paquetes habituales ● Para Windows y Mac se hace uso de un programa llamado “docker-machine” ● Docker es un demonio que expone una interfaz REST
  • 20. Marzo 2016 www.opencanarias.com 20 Linux / Mac / Windows
  • 21. Marzo 2016 www.opencanarias.com 21 Comandos iniciales ● docker (lista los posibles comandos) ● docker version (versión del demonio y del cliente) ● docker info (información del sistema)
  • 22. Marzo 2016 www.opencanarias.com 22 Nuestro primer contenedor ● docker run -i ubuntu echo Hello World – run Ejecutar un contenedor→ – -i Modo interactivo→ – ubuntu Imagen a usar en el contenedor→ – echo Hello World Comando a ejecutar→ ● Flujo: – Busca la imagen localmente, luego en repositorios centrales.
  • 23. Marzo 2016 www.opencanarias.com 23 Imágenes ● Una imagen está formada por capas (layers) que se montan unas encima de otras. Todas en modo sólo lectura. ● La última capa se monta como lectura/escritura y da lugar al contenedor. ● Las capas usan el patrón “copy on write”
  • 24. Marzo 2016 www.opencanarias.com 24 Comandos imágenes ● docker images ● docker run -t -i --name test01 ubuntu /bin/bash (ubuntu:latest) ● docker run -t -i --name test02 centos:centos6 /bin/bash ● docker pull ubuntu:14.04 ● docker pull sgonzalez/centosopen:centos5 ● docker search centos
  • 25. Marzo 2016 www.opencanarias.com 25 Crear imágenes ● docker commit (no recomendado) – docker run -it centos /bin/bash – yum upgrade && yum install httpd – vi /var/www/html/index.html – exit – docker commit <containerID> sgonzalez/apache:webopen ● docker build – Consiste en un fichero (Dockerfile) de instrucciones para construir las imágenes
  • 26. Marzo 2016 www.opencanarias.com 26 Dockerfile ● Comandos más habituales – FROM De que imagen partimos para crear la nueva→ – MAINTEINER Quien mantiene el contenedor→ – RUN Ejecuta una instrucción en el contenedor→ – ADD Añade un fichero o carpeta al contenedor→ – ENV Establece una variable de entorno en el contenedo→ – EXPOSE Indica que se va a exponer un puerto del→ contenedor – ENTRYPOINT / CMD Qué se ejecuta→
  • 27. Marzo 2016 www.opencanarias.com 27 entrypoint / cmd ● ENTRYPOINT define el proceso a ejecutar – Por defecto es “/bin/sh -c” ● CMD son los parámetros del proceso ● Por ejemplo: – CMD [“/usr/bin/top”] – docker run -i -t myubuntu (/bin/sh -c /usr/bin/top) – docker run -i -t myubuntu bash (/bin/sh -c bash) – ENTRYPOINT ["/bin/cat"] – docker run -it catimg /etc/passwd (/bin/cat /etc/passwd)
  • 28. Marzo 2016 www.opencanarias.com 28 Contenedores ● Hacen uso de una imagen como base y pueden contener uno o más procesos. ● Un contenedor Docker es: – Una instancia de una imagen Docker – Un conjunto de operaciones asociadas a su ciclo de vida: ● Crear, Destruir, Arrancar, Reiniciar o Parar – Un entorno de ejecución
  • 29. Marzo 2016 www.opencanarias.com 29 Comandos contenedores ● docker run -d ubuntu /bin/sh -c "while true; do echo Hello World; sleep 1; done" docker ps [-a] docker inspect <ID> docker attach <ID> docker stop <ID> docker start <ID> docker rm [-f] <ID> docker logs [-f] <ID> docker create <image> docker top <ID> docker build [-f dockerfile] <dir> docker exec <ID> <cmd> docker load / save
  • 30. Marzo 2016 www.opencanarias.com 30 Uso de contenedores ● Data Volumes – Dockerfile ● VOLUME [ “/var/log/http” ] – Docker run ● docker run -v [rutahost:]rutacontenedor[:rw,:ro] ● Data Volume Containers ● docker run --volumes-from datacontainer … ● Links ● (1) docker run -d --name database01 … ● (2) docker run -d --name web --link database01:db ...
  • 31. Marzo 2016 www.opencanarias.com 31 Data Volume Containers db1 dbstore db2 --volumes-from dbstore --volumes-from dbstore docker create -v /dbdata --name dbstore ubuntu /bin/true docker run -d --volumes-from dbstore --name db1 training/postgres docker run -d --volumes-from dbstore --name db2 training/postgres /var/lib/docker/volumes/f30d….959c7d/_data
  • 32. Marzo 2016 www.opencanarias.com 32 Post & Link Containers HOST Con EXPOSE: ● Se expone un puerto del contenedor al host. -p [<host_port>:]<cont_port> Cuando se “linkan” dos contenedores pasan dos cosas: ● Se crean variables de entorno <name>_PORT_<port>_<protocol> ● Se modifica el /etc/hosts docker run -d --name db -p 5432 training/postgres docker run -it --link db:db -p 80:80 --name myapp ubuntu bash /etc/hosts 172.17.0.2 db myapp db eth0 192.168.1.100 eth0 172.17.0.3 eth0 172.17.0.2 docker0 172.17.0.1 80 5432 80 6789
  • 34. Marzo 2016 www.opencanarias.com 34 Orquestación ● Diferentes plataformas de orquestación ● Kubernetes (Proyecto de Google, 2014) ● Mesos (Proyecto apache, 2015) ● Docker Swarm (Proyecto de Docker, 2015) ● Kubernetes (2014) ● Plataforma para automatizar el despliegue, escalado y uso de contenedores sobre un cluster de servidores. ● El sistema es altamente portable (public, private, hybrid, multi-cloud)
  • 35. Marzo 2016 www.opencanarias.com 35 Cluster Kubernetes ● El Cluster está compuesto por... – Número impar de servidores de gestión (>=3) – Ilimitado número de nodos de trabajo (minions) ● Cita – “Hay que tratar los servidores como ganado y no como mascotas”
  • 38. Marzo 2016 www.opencanarias.com 38 Microservices Architecture MSA Fuente: http://martinfowler.com/articles/microservices.html
  • 39. Marzo 2016 www.opencanarias.com 39 Estructura Organizativa
  • 40. Marzo 2016 www.opencanarias.com 40 Estructura Organizativa
  • 41. Marzo 2016 www.opencanarias.com 41 Dockers & MSA ● Cloud Ready ● Simplificación de los despliegues ● Capacidad de escalado dinámico y automático ● Portabilidad de las soluciones ● Reutilización ● Facilita la Integración Contínua
  • 42. Ciclo de vida con DevOps Integracion Continua con Dockers
  • 44. Marzo 2016 www.opencanarias.com 44 Integración Continua
  • 45. Marzo 2016 www.opencanarias.com 45 Integración Continua
  • 46. Marzo 2016 www.opencanarias.com 46 Dockers for CI FROM ubuntu:14.04 MAINTAINER bcuesta@opencanarias.es ENV REFRESHED_AT 2016-03-01 RUN apt-getupdate -qq && apt-getinstall-qqy curl↩ apt-transport-https RUN curl https://get.docker.io/gpg | apt-key add - RUN echo deb http://get.docker.io/ubuntu dockerm ain > /etc/apt/↩ sources.list.d/docker.list RUN apt-getupdate -qq && apt-getinstall-qqy iptablesca-↩ certificates lxc openjdk-7-jdk git-core lxc-docker ENV JENKINS_HOME /opt/jenkins/data ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org RUN mkdir -p $JENKINS_HOME/plugins RUN curl-sf-o /opt/jenkins/jenkins.w ar-L $JENKINS_M IRROR/w ar-↩ stable/latest/jenkins.war RUN forplugin in chucknorrisgreenballsscm -apigit-clientgit↩ ws-cleanup ; do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi -L $JENKINS_M IRROR/plugins/${plugin}/latest/${plugin}.hpi↩ ; done ADD ./dockerjenkins.sh /usr/local/bin/dockerjenkins.sh RUN chmod +x /usr/local/bin/dockerjenkins.sh VOLUME /var/lib/docker EXPOSE 8080 ENTRYPOINT [ "/usr/local/bin/dockerjenkins.sh" ] Fuente: The.Docker.Book. James Turnbull ● $ docker build -t↩ opencanarias/jenkins . ● $ docker run -p 8080:8080↩ --name jenkins↩ --privileged↩ -d opencanarias/jenkins
  • 47. Marzo 2016 www.opencanarias.com 47 Dockers for CI
  • 48. Marzo 2016 www.opencanarias.com 48 Dockers for CI
  • 50. Marzo 2016 www.opencanarias.com 50 Docker LibreOffice Servidor Linux 1 OpenOffice 2.1 Tomcat 5.5 APP1 Servidor Linux 2 OpenOffice 2.1 Tomcat 5.5 APP2 DocManager
  • 51. Marzo 2016 www.opencanarias.com 51 Docker LibreOffice Servidor Linux 1 Tomcat 5.5 APP1 Servidor Linux 2 Tomcat 5.5 APP2 DocManager Client Linux LibreOffice 4.4LibreOffice 4.4LibreOffice 4.4LibreOffice 4.4LibreOffice 4.4 HAProxy Load Balancer DocManager Server DocManager Client
  • 52. Marzo 2016 www.opencanarias.com 52 Docker LibreOffice
  • 53. Marzo 2016 www.opencanarias.com 53 Compose DocManagerData: image: ubuntu volumes: - "/tmp/DOCManager" - "/tmp/DOCManager/temp" DocManagerServer: image:docmanagerserver links: - "haproxy:haproxy" volumes: - "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib" volumes_from: - DocManagerData ports: - "1099:1099" - "1234:1234" haproxy: image:haproxy links: - "libreoffice:libreoffice" volumes: - /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg ports: - "8997:8997" - "1936:1936" libreoffice: image:libreoffice environment: - TCP_PORTS=8997 expose: - "8997" volumes_from: - DocManagerData
  • 54. Marzo 2016 www.opencanarias.com 54 Compose DocManagerData: image: ubuntu volumes: - "/tmp/DOCManager" - "/tmp/DOCManager/temp" DocManagerServer: image: docmanagerserver links: - "haproxy:haproxy" volumes: - "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib" volumes_from: - DocManagerData ports: - "1099:1099" - "1234:1234" haproxy: image: haproxy links: - "libreoffice:libreoffice" volumes: - /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg ports: - "8997:8997" - "1936:1936" libreoffice: image: libreoffice environment: - TCP_PORTS=8997 expose: - "8997" volumes_from: - DocManagerData docker-compose up -d
  • 55. Marzo 2016 www.opencanarias.com 55 Compose DocManagerData: image: ubuntu volumes: - "/tmp/DOCManager" - "/tmp/DOCManager/temp" DocManagerServer: image: docmanagerserver links: - "haproxy:haproxy" volumes: - "/usr/local/src/DockerImages/libs:/opt/DOCManagerServer/lib" volumes_from: - DocManagerData ports: - "1099:1099" - "1234:1234" haproxy: image: haproxy links: - "libreoffice:libreoffice" volumes: - /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg ports: - "8997:8997" - "1936:1936" libreoffice: image: libreoffice environment: - TCP_PORTS=8997 expose: - "8997" volumes_from: - DocManagerData docker-compose scale libreoffice=5
  • 56. Marzo 2016 www.opencanarias.com 56 Usos de Docker ● Ayudar a que nuestro entorno de desarrollo sea más rápido, eficiente y más ligero. Los desarrolladores pueden compartir los contenedores entre ellos. ● Ejecución de micro-servicios y aplicaciones consistentemente entre diferentes entornos. (AWS, GCE, etc). ● Creación de entornos de test para la integración continua como Jenkins por ejemplo. ● Creación y prueba de entornos complejos en máquinas locales, antes de pasarlos a producción. ● Construcción de “sandboxes” ligeras para desarrollo, test, etc. ● SaaS y PaaS
  • 57. Marzo 2016 www.opencanarias.com 57 Gracias ● info@opencanarias.com ● www.opencanarias.com ● www.linkedin.com/company/open-canarias-sl ● www.facebook.com/opencanarias ● www.google.com/+opencanarias ● @OpenCanarias