SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Iniciando en el mundo de los contenedores
con Docker
Cloud Native
Temas Cloud Native
Cloud Native Computing Foundation
Cloud Native Computing Chile
● Comunidad de entusiastas de Cloud Native
● Basado en las directrices y proyectos de la Cloud Native Computing
Foundation (https://www.cncf.io/)
● Difundir y aportar a la industria del software en Chile
● El modelo Open Source como referencia y preferencia
Motivación
● Gran oportunidad para mejorar el diseño despliegue y operación de los
desarrollos de Software
● La disponibilidad de herramientas de Clase Mundial
● Comunidad internacional Cloud Native creciendo exponencialmente
● Necesidades de talento capacitado en la Industria
● Necesidad de una visión completa. Mas alla de tecnologías especificas
¿Quiénes se motivaron?
Jesús Rodríguez
Founder - Organizer
Natalia Rivera
Co-Organizer
Ramón Bastidas
Co-Organizer
Jonathan González
Co-Organizer
¿Qué queremos lograr?
● Comunidad que comparta experiencias y conocimientos en Cloud Native
● Vínculo entre la industria ( vendor, consumidores, proveedores) y talento
local
● Apoyar a las organizaciones en la adopción de las prácticas de Cloud
Native
● Generar equipos para aportar a los proyectos Open Source sobre Cloud
Native
Ahora, a lo que vinimos
https://docs.docker.com/install/
https://github.com/cerberuz/docker-
workshop
El Reto
● Gran oportunidad para mejorar el diseño despliegue y operación de
los desarrollos de Software
● La disponibilidad de herramientas de Clase Mundial
● Comunidad internacional Cloud Native creciendo exponencialmente
● Necesidades de talento capacitado en la Industria
● Necesidad de una visión completa. Mas alla de tecnologías
especificas
El Desafio
Pero, el desafio no es nuevo
Tampoco la solución
Eliminamos la complejidad NxN
La Solución Docker
“Docker es una plataforma abierta para la
construcció n, distribució n y ejecució n de
aplicaciones”
La Solución Docker
Docker Soluciona la pesadilla NxN
Espera, eso me suena a VMs
VMs Vs Containers
VMs Vs Containers
Consideraciones
● Si corre en Linux, corre en un Container.
● Solo para entornos Linux POR DEFECTO.
● Creación de entornos aislados.
● Permite Escalar de manera Rapida
● Rapidos Despliegues en clientes
● Usuario ROOT en container
Vamos donde nos quedamos
https://docs.docker.com/install/
Para verificar:
docker info
Para sobrevivir:
docker --help
Algunos comandos básicos - container
● docker run image
● docker container ls
● docker run -d -p HOST_PORT:CONTAINER_PORT --name NAME IMAGE
● docker container stopt/start/kill
● docker container rm
● docker container logs
● docker container inspect
Algunos comandos básicos - images
● docker image ls
● docker image pull
● docker login (El registry y el hub)
● docker image push
● docker image rm
● docker image tag
● docker image prune
Creando una imagen con Dockerfile
● FROM image:tag
● WORKDIR value
● CMD ["executable", "param1", "param2"]
● EXPOSE Port
● ENV Key Value
● RUN ["executable", "param1", "param2"]
● ENTRYPOINT ["executable", "param1", "param2"]
docker build -t name:tag DIR
Networking nativo en docker
● Existen distintos tipos de network driver para docker los principales
● Bridge(default): docker network create my-net
● Host: docker run --rm -dit --network host --name my_nginx nginx
● Overlay: docker network create -d overlay my-overlay
Gestionando los datos en docker
Gestionando los datos en docker - Volumes
● Los Volumes se almacenan en una parte del sistema de archivos de
host que es administrado por Docker (/ var / lib / docker / volumes /
en Linux).
○ Los procesos no Docker no deberían modificar esta parte del
sistema de archivos
○ Los Volumes son la mejor forma de conservar datos en Docker.
Gestionando los datos en docker - Volumes
● docker volume create my-vol
● docker volume ls
● docker volume inspect my-vol
● docker volume rm my-vol
● docker run -d --name devtest --mount source=myvol2,target=/app nginx
● docker run -d --name devtest -v myvol2:/app nginx:latest
●
Gestionando los datos en docker - Bind tmpfs
● Los Bind-mounts pueden almacenarse en cualquier lugar del sistema host.
Incluso pueden ser archivos o directorios importantes del sistema.
○ Los procesos que no son Docker en el host Docker o en un contenedor
Docker pueden modificarlos en cualquier momento
● Los volúmenes Los montajes de tmpfs se almacenan en la memoria del
sistema host únicamente
○ Nunca se escriben en el sistema de archivos del sistema host.
○ Solo está disponible en la versión de Docker para Linux
Gestionando los datos en docker - Bind-tmpfs
● Iniciar un container con Bind-mount
○ docker run -d -it --name devtest -v "$(pwd)"/target:/app nginx:latest
● Bind-mount en el container con permisos de solo lectura
○ docker run -d -it --name devtest -v "$(pwd)"/target:/app:ro
nginx:latest
● Iniciar un container con tmpfs
○ docker run -d -it --name tmptest --tmpfs /app nginx:latest
Gestionando los datos en docker - Secrets
● Se utilizan para gestionar los datos sensibles.
○ Requeridos en el runtime
○ No deben ser almacenados en la imagen o el proyecto
● Se pueden usar para gestionar data no sensible pero se recomienda usar
configs en su lugar
● En sistemas *nix son almacenados en RAM “/run/secrets/SECRET_NAME”
● En sistemas Windows se almacenan en la persistencia como texto plano
Multi-Containers Apps - Docker-Compose
● Docker-Compose es una herramienta para definir y ejecutar aplicaciones
Docker multi-container.
○ Define la aplicacion en lengua DSL en formato YML
docker-compose.yml
○ Posee un CLI para gestionar todo el ciclo de vida de la aplicacion.
Multi-Containers Apps - Docker-Compose
● docker-compose up
● docker-compose up -f FILENAME
● docker-compose down
● docker-compose restart
● docker-compose scale (deprecated)
● docker-compose events
Docker-Compose en acción
Preguntas?
Muchas gracias

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (20)

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
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
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
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...
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
El Proyecto Moby
El Proyecto MobyEl Proyecto Moby
El Proyecto Moby
 
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
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
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
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Usando docker
Usando dockerUsando docker
Usando docker
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 

Similar a Workshop docker: Iniciando en el Mundo de los Contenedores

Similar a Workshop docker: Iniciando en el Mundo de los Contenedores (20)

TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
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
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Migrando CI a Docker
Migrando CI a DockerMigrando CI a Docker
Migrando CI a Docker
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
 
Taller girona
Taller gironaTaller girona
Taller girona
 
PHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPPHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHP
 
Docker love WordPress
Docker love WordPressDocker love WordPress
Docker love WordPress
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
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
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Docker
DockerDocker
Docker
 

Workshop docker: Iniciando en el Mundo de los Contenedores

  • 1. Iniciando en el mundo de los contenedores con Docker
  • 5.
  • 6.
  • 7. Cloud Native Computing Chile ● Comunidad de entusiastas de Cloud Native ● Basado en las directrices y proyectos de la Cloud Native Computing Foundation (https://www.cncf.io/) ● Difundir y aportar a la industria del software en Chile ● El modelo Open Source como referencia y preferencia
  • 8. Motivación ● Gran oportunidad para mejorar el diseño despliegue y operación de los desarrollos de Software ● La disponibilidad de herramientas de Clase Mundial ● Comunidad internacional Cloud Native creciendo exponencialmente ● Necesidades de talento capacitado en la Industria ● Necesidad de una visión completa. Mas alla de tecnologías especificas
  • 9. ¿Quiénes se motivaron? Jesús Rodríguez Founder - Organizer Natalia Rivera Co-Organizer Ramón Bastidas Co-Organizer Jonathan González Co-Organizer
  • 10. ¿Qué queremos lograr? ● Comunidad que comparta experiencias y conocimientos en Cloud Native ● Vínculo entre la industria ( vendor, consumidores, proveedores) y talento local ● Apoyar a las organizaciones en la adopción de las prácticas de Cloud Native ● Generar equipos para aportar a los proyectos Open Source sobre Cloud Native
  • 11. Ahora, a lo que vinimos https://docs.docker.com/install/ https://github.com/cerberuz/docker- workshop
  • 12. El Reto ● Gran oportunidad para mejorar el diseño despliegue y operación de los desarrollos de Software ● La disponibilidad de herramientas de Clase Mundial ● Comunidad internacional Cloud Native creciendo exponencialmente ● Necesidades de talento capacitado en la Industria ● Necesidad de una visión completa. Mas alla de tecnologías especificas
  • 14. Pero, el desafio no es nuevo
  • 17. La Solución Docker “Docker es una plataforma abierta para la construcció n, distribució n y ejecució n de aplicaciones”
  • 19. Docker Soluciona la pesadilla NxN
  • 20. Espera, eso me suena a VMs
  • 23. Consideraciones ● Si corre en Linux, corre en un Container. ● Solo para entornos Linux POR DEFECTO. ● Creación de entornos aislados. ● Permite Escalar de manera Rapida ● Rapidos Despliegues en clientes ● Usuario ROOT en container
  • 24. Vamos donde nos quedamos https://docs.docker.com/install/ Para verificar: docker info Para sobrevivir: docker --help
  • 25. Algunos comandos básicos - container ● docker run image ● docker container ls ● docker run -d -p HOST_PORT:CONTAINER_PORT --name NAME IMAGE ● docker container stopt/start/kill ● docker container rm ● docker container logs ● docker container inspect
  • 26. Algunos comandos básicos - images ● docker image ls ● docker image pull ● docker login (El registry y el hub) ● docker image push ● docker image rm ● docker image tag ● docker image prune
  • 27. Creando una imagen con Dockerfile ● FROM image:tag ● WORKDIR value ● CMD ["executable", "param1", "param2"] ● EXPOSE Port ● ENV Key Value ● RUN ["executable", "param1", "param2"] ● ENTRYPOINT ["executable", "param1", "param2"]
  • 28. docker build -t name:tag DIR
  • 29. Networking nativo en docker ● Existen distintos tipos de network driver para docker los principales ● Bridge(default): docker network create my-net ● Host: docker run --rm -dit --network host --name my_nginx nginx ● Overlay: docker network create -d overlay my-overlay
  • 31. Gestionando los datos en docker - Volumes ● Los Volumes se almacenan en una parte del sistema de archivos de host que es administrado por Docker (/ var / lib / docker / volumes / en Linux). ○ Los procesos no Docker no deberían modificar esta parte del sistema de archivos ○ Los Volumes son la mejor forma de conservar datos en Docker.
  • 32. Gestionando los datos en docker - Volumes ● docker volume create my-vol ● docker volume ls ● docker volume inspect my-vol ● docker volume rm my-vol ● docker run -d --name devtest --mount source=myvol2,target=/app nginx ● docker run -d --name devtest -v myvol2:/app nginx:latest ●
  • 33. Gestionando los datos en docker - Bind tmpfs ● Los Bind-mounts pueden almacenarse en cualquier lugar del sistema host. Incluso pueden ser archivos o directorios importantes del sistema. ○ Los procesos que no son Docker en el host Docker o en un contenedor Docker pueden modificarlos en cualquier momento ● Los volúmenes Los montajes de tmpfs se almacenan en la memoria del sistema host únicamente ○ Nunca se escriben en el sistema de archivos del sistema host. ○ Solo está disponible en la versión de Docker para Linux
  • 34. Gestionando los datos en docker - Bind-tmpfs ● Iniciar un container con Bind-mount ○ docker run -d -it --name devtest -v "$(pwd)"/target:/app nginx:latest ● Bind-mount en el container con permisos de solo lectura ○ docker run -d -it --name devtest -v "$(pwd)"/target:/app:ro nginx:latest ● Iniciar un container con tmpfs ○ docker run -d -it --name tmptest --tmpfs /app nginx:latest
  • 35. Gestionando los datos en docker - Secrets ● Se utilizan para gestionar los datos sensibles. ○ Requeridos en el runtime ○ No deben ser almacenados en la imagen o el proyecto ● Se pueden usar para gestionar data no sensible pero se recomienda usar configs en su lugar ● En sistemas *nix son almacenados en RAM “/run/secrets/SECRET_NAME” ● En sistemas Windows se almacenan en la persistencia como texto plano
  • 36. Multi-Containers Apps - Docker-Compose ● Docker-Compose es una herramienta para definir y ejecutar aplicaciones Docker multi-container. ○ Define la aplicacion en lengua DSL en formato YML docker-compose.yml ○ Posee un CLI para gestionar todo el ciclo de vida de la aplicacion.
  • 37. Multi-Containers Apps - Docker-Compose ● docker-compose up ● docker-compose up -f FILENAME ● docker-compose down ● docker-compose restart ● docker-compose scale (deprecated) ● docker-compose events