SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Dockeriza tu entorno de
desarrollo
Marco Bellido
@marcoocram
Sobre mí
● Desarrollador web.
● Background: PHP, Javascript.
● Actualmente: Lead
Development en GOI.
Marco Bellido
we’re
hiring!
Disclaimers
● Charla introductoria: (Docker y Compose for dummies).
● Bases de Docker (no wrappers).
● Soy desarrollador PHP (y no me arrepiento).
Evolución del desarrollo (web)
● Servidores compartidos.
● Servidores dedicados.
● Virtual Machine (VMs).
● Vagrant.
● Docker.
¿Qué es Docker?
● Basado en cgroups de UNIX
● Entornos aislados
INFRAESTRUCTURA
SISTEMA OPERATIVO HOST
HYPERVISOR
SO VM
BIN/LIBS
APP 1
SO VM
BIN/LIBS
APP 2
SO VM
BIN/LIBS
APP 3
Máquinas Virtuales
INFRAESTRUCTURA
SISTEMA OPERATIVO HOST
DOCKER DAEMON
BIN/LIBS
APP 1
BIN/LIBS
APP 2
BIN/LIBS
APP 3
Contenedores Docker
¿Por qué Docker?
● Unificación de entornos de desarrollo.
● Misma versión en entornos dev/staging/producción.
● Versionado de configuraciones.
Conceptos claves
Docker Engine
● Núcleo de Docker
● Encargado de ejecución y mantenimiento de contenedores.
● Accesible a través de una API.
● Uso a través de docker-cli.
Docker Machine
● Instalación de una (o más) instancias de Docker Engine.
● Instalación sobre VMs (virtualbox, vmware, …).
● Administración en servidores.
● Tipo de instalación (antiguas) sobre MacOS, Windows.
Container, Image, Dockerfile
● Container: Entorno aislado sobre el que corre tu aplicación. Volátil.
● Image: “plantilla” del contenedor. Símil clase en POO.
● Dockerfile:
○ Definición de la imagen.
○ Creado por capas (como una cebolla).
○ Parte de una imagen base para ir añadiendo dependencias, exponer puertos, copiar
archivos, entrypoints, ...
Dockerfile
Dockerfile
Network, Volume
● Network:
Conectar uno o más containers a través de una red aislada (o bridge).
● Volume:
Containers volátiles. Sistema para mapear directorios del sistema host al
container para persistencia de datos.
Docker Registry
● Repositorio donde se alojan imágenes Docker.
● Registry oficial (por defecto): Docker Hub https://hub.docker.com
● Registry privados: (ej.: GitLab, AWS ECR, …)
Docker Compose
● Orquestación de contenedores.
● Conectados entre sí por network bridge por defecto.
● Servicios, volúmenes, containers, puertos…
● Definidos mediante un archivo YAML (docker-compose.yml).
Clúster Docker
● Escalado de contenedores.
○ Docker Swarm
○ Kubernetes
○ ECS
○ ...
Docker CLI
Docker CLI: Comandos habituales
docker container run
docker container ps
Docker CLI: Comandos habituales
docker container exec
docker container misc
Docker CLI: Comandos habituales
docker image misc
docker misc
Demo time...
Enlaces de interés
● Documentación oficial Docker
https://docs.docker.com
● Documentación oficial Docker Compose
https://docs.docker.com/compose
● Docker in Development (Chris Fidao)
https://serversforhackers.com/s/docker-in-development
● Dockerizando un API en Node (José Fonseca)
https://youtu.be/d8Be811G0Pc
¡Gracias y
Burgos días!

Contenu connexe

Tendances

Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladoressergiovier
 
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 2015Gustavo Andres Brey
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSAlberto Gimeno
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmMario IC
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)PiXeL16
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 

Tendances (20)

Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Introducción Nodejs
Introducción NodejsIntroducción Nodejs
Introducción Nodejs
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
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
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Nodejs
NodejsNodejs
Nodejs
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con Helm
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 

Similaire à Dockeriza tu entorno de desarrollo

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.
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemMario IC
 
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 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
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacionStivenLopez46
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
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
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containersJulioMontes23
 

Similaire à Dockeriza tu entorno de desarrollo (20)

Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
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
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
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 Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
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
 
Docker
DockerDocker
Docker
 
Taller girona
Taller gironaTaller girona
Taller girona
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Usando docker
Usando dockerUsando docker
Usando docker
 

Dockeriza tu entorno de desarrollo

  • 1. Dockeriza tu entorno de desarrollo Marco Bellido @marcoocram
  • 2. Sobre mí ● Desarrollador web. ● Background: PHP, Javascript. ● Actualmente: Lead Development en GOI. Marco Bellido we’re hiring!
  • 3. Disclaimers ● Charla introductoria: (Docker y Compose for dummies). ● Bases de Docker (no wrappers). ● Soy desarrollador PHP (y no me arrepiento).
  • 4. Evolución del desarrollo (web) ● Servidores compartidos. ● Servidores dedicados. ● Virtual Machine (VMs). ● Vagrant. ● Docker.
  • 5. ¿Qué es Docker? ● Basado en cgroups de UNIX ● Entornos aislados INFRAESTRUCTURA SISTEMA OPERATIVO HOST HYPERVISOR SO VM BIN/LIBS APP 1 SO VM BIN/LIBS APP 2 SO VM BIN/LIBS APP 3 Máquinas Virtuales INFRAESTRUCTURA SISTEMA OPERATIVO HOST DOCKER DAEMON BIN/LIBS APP 1 BIN/LIBS APP 2 BIN/LIBS APP 3 Contenedores Docker
  • 6. ¿Por qué Docker? ● Unificación de entornos de desarrollo. ● Misma versión en entornos dev/staging/producción. ● Versionado de configuraciones.
  • 8. Docker Engine ● Núcleo de Docker ● Encargado de ejecución y mantenimiento de contenedores. ● Accesible a través de una API. ● Uso a través de docker-cli.
  • 9. Docker Machine ● Instalación de una (o más) instancias de Docker Engine. ● Instalación sobre VMs (virtualbox, vmware, …). ● Administración en servidores. ● Tipo de instalación (antiguas) sobre MacOS, Windows.
  • 10. Container, Image, Dockerfile ● Container: Entorno aislado sobre el que corre tu aplicación. Volátil. ● Image: “plantilla” del contenedor. Símil clase en POO. ● Dockerfile: ○ Definición de la imagen. ○ Creado por capas (como una cebolla). ○ Parte de una imagen base para ir añadiendo dependencias, exponer puertos, copiar archivos, entrypoints, ...
  • 12. Network, Volume ● Network: Conectar uno o más containers a través de una red aislada (o bridge). ● Volume: Containers volátiles. Sistema para mapear directorios del sistema host al container para persistencia de datos.
  • 13. Docker Registry ● Repositorio donde se alojan imágenes Docker. ● Registry oficial (por defecto): Docker Hub https://hub.docker.com ● Registry privados: (ej.: GitLab, AWS ECR, …)
  • 14. Docker Compose ● Orquestación de contenedores. ● Conectados entre sí por network bridge por defecto. ● Servicios, volúmenes, containers, puertos… ● Definidos mediante un archivo YAML (docker-compose.yml).
  • 15. Clúster Docker ● Escalado de contenedores. ○ Docker Swarm ○ Kubernetes ○ ECS ○ ...
  • 17. Docker CLI: Comandos habituales docker container run docker container ps
  • 18. Docker CLI: Comandos habituales docker container exec docker container misc
  • 19. Docker CLI: Comandos habituales docker image misc docker misc
  • 21. Enlaces de interés ● Documentación oficial Docker https://docs.docker.com ● Documentación oficial Docker Compose https://docs.docker.com/compose ● Docker in Development (Chris Fidao) https://serversforhackers.com/s/docker-in-development ● Dockerizando un API en Node (José Fonseca) https://youtu.be/d8Be811G0Pc