SlideShare una empresa de Scribd logo
Docker4Developers
by @rrequero
MADRID · NOV 18-19 · 2016
MADRID · NOV 18-19 · 2016
Quién soy?
Raúl Requero García
Twitter: @rrequero
LinkedIn:
https://www.linkedin.com/in/requerogarciaraul
MADRID · NOV 18-19 · 2016
Qué cosas hago?
MADRID · NOV 18-19 · 2016
Qué cosas hago?
MADRID · NOV 18-19 · 2016
Que vamos a ver?
- Qué es docker?
- Como crear nuestra imagen (Dockerfile)
- Y ahora, cómo ejecutamos nuestra imagen? Creamos
nuestro container
- Mi aplicación necesita varios contenedores. Qué
hago? -> Docker Compose
- Recomendaciones
MADRID · NOV 18-19 · 2016
Veámoslo todo con ejemplos
Código en github:
https://github.com/rrequero/docker4developers-talk-codemotion-2
016
MADRID · NOV 18-19 · 2016
Qué es docker?
- Es un proyecto de código abierto
(https://github.com/docker/docker)
- Permite crear contenedores Linux de
forma programática (LXC LinuX
Containers)
- Escrito en Golang
MADRID · NOV 18-19 · 2016
Qué es docker?
- Ligero
- Portable
- Autosuficiente
- Repositorio de imágenes (docker-hub)
MADRID · NOV 18-19 · 2016
Qué es docker?
Se basa en 2 conceptos principales:
- Imagen
- Contenedor
MADRID · NOV 18-19 · 2016
FROM
Nos proporciona un “lenguaje” con el que definir nuestros
contenedores.
Cómo crear nuestra imagen? Dockerfile
MAINTAINER
COPY
RUN
EXPOSE
VOLUME WORKDIR
USER
CMD
ENTRYPOINT
ENV
MADRID · NOV 18-19 · 2016
Siempre se parte de una imagen base.
Cómo crear nuestra imagen? Dockerfile
MADRID · NOV 18-19 · 2016
Vamos añadiendo cambios sobre la imagen base.
ej:
Estos cambios se reflejarán como “capas” que docker cachea.
Cómo crear nuestra imagen? Dockerfile
MADRID · NOV 18-19 · 2016
Por último, hacemos build de nuestro Dockerfile con
docker-cli
Cómo crear nuestra imagen? Dockerfile
MADRID · NOV 18-19 · 2016
Posibles parámetros:
- --no-cache: No utiliza las capas cacheadas
- --force-rm: No genera una cache por cada capa
- -t: Da un nombre a la imagen. Ej: -t <name>:<version>
- Más.....
Cómo crear nuestra imagen? Dockerfile
MADRID · NOV 18-19 · 2016
Ejemplo en vivo :)
Código en github:
https://github.com/rrequero/docker4developers-talk-codemo
tion-2016#second-part
Cómo crear nuestra imagen? Dockerfile
MADRID · NOV 18-19 · 2016
Docker-cli nos ofrece el comando run para ejecutar una
instancia de una imagen:
Y ahora, cómo ejecutamos nuestra imagen?
MADRID · NOV 18-19 · 2016
Posibles parámetros:
- -e: Pasar variables de entorno ej: -e NODE_ENV=prod
- -p: Exponer puertos hacia fuera del contenedor ej: -p
80:8000
- -v: Volúmenes. Compartir directorios entre el contenedor
y nuestra máquina ej: -v $PWD/app:/home/user/app
- -d: Ejecutar en background
- Más.....
Y ahora, cómo ejecutamos nuestra imagen?
MADRID · NOV 18-19 · 2016
Además de run, nos proporciona otros comandos como:
- docker stop <idContainer>: Parar el contenedor
- docker ps: Muestra los contenedores en ejecución (con la opción -a
muestra todos los contenedores parados y en ejecución)
- docker images: Muestra las imágenes que tenemos en nuestra
máquina
- docker rmi <idImage>: Elimina una imagen
- docker exec <container> <command>: Ejecuta un comando en el
contenedor. Ej: docker exec -it <name/id> bash
Y ahora, cómo ejecutamos nuestra imagen?
MADRID · NOV 18-19 · 2016
Docker compose:
- Herramienta que nos proporciona
Docker
- Permite componer de forma
programática un entorno de varios
contenedores que se pueden
comunicar entre sí
- docker-compose.yml
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
- Cada contenedor es un “service”
- Cada “service” se puede configurar:
- Imagen o dockerfile
- Puertos
- Volúmenes
- Variables de entorno
- etc
- Se pueden establecer dependencias entre ellos (depends_on)
- v2 genera una subred entre los servicios definidos (v1 necesita
link)
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
Para generar las imágenes de los servicios que
dependen de un Dockerfile, ejecutamos:
Para ejecutar los contenedores
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
Docker-compose también nos proporciona comandos
otros comandos, como:
- docker-compose stop: Para todos los contenedores
definidos en el docker-compose
- docker-compose rm: Elimina los contenedores
definidos en el docker-compose
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
Ejemplo en vivo :)
Código en github:
https://github.com/rrequero/docker4developers-talk-codemo
tion-2016#final-part
Mi aplicación necesita varios contenedores.
Qué hago? -> Docker compose
MADRID · NOV 18-19 · 2016
Seguridad:
- Nunca dejéis una imagen con el usuario de root. Establecer un
usuario.
- Solo ejecutar contenedores de confianza
- No instaleis software innecesario
- Chequear los contenedores de forma periódica en busca de posibles
vulnerabilidades y regenerarlos con los parches de seguridad
- Cuidado con que volúmenes exponeis
--volume=/var/run/docker.sock:/tmp/docker.sock
Recomendaciones
MADRID · NOV 18-19 · 2016
Performance:
- Borrar de forma periódica las imágenes sin tag que se generan y/o
utilizar --force-rm
- Al generar una imagen, intentar equilibrar el número de
capas/cache que utilizais. ¿Porque? Cada capa genera una
imagen intermedia de cache que ocupa espacio.
Recomendaciones
MADRID · NOV 18-19 · 2016
Utilidades:
- Borrar todas los contenedores parados
docker rm $(docker ps -a -q)
- Borrar todas las imagenes sin tag
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
Recomendaciones
MADRID · NOV 18-19 · 2016
Preguntas / dudas
Twitter: @rrequero
LinkedIn: https://www.linkedin.com/in/requerogarciaraul
MADRID · NOV 18-19 · 2016
Muchas gracias

Más contenido relacionado

PDF
Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java
PDF
Spring Madrid User Group - Spring Integration in Action
PDF
Kubernetes: Caso de uso real con mememtum y Taniwa
PDF
introducción a Docker
PDF
DevOps+[Chef/Docker]
PDF
Dev Tools para Kubernetes - Codemotion 2019
PDF
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java
Spring Madrid User Group - Spring Integration in Action
Kubernetes: Caso de uso real con mememtum y Taniwa
introducción a Docker
DevOps+[Chef/Docker]
Dev Tools para Kubernetes - Codemotion 2019
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...

La actualidad más candente (20)

PDF
Curso Angular 9 - CodeURJC - Marzo 2020
PDF
Codemotion 2015 crash y youdebug
PDF
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
ODP
Administra tu código con Git y Github
PPTX
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
ZIP
grails.org.mx Primera Reunion
PPTX
Introducción Nodejs
ODP
Seminario Grails
PDF
Fury DevopsConf 2015
PPTX
Java
PDF
Liferay 6 1, Internacionalización en nuestros desarrollos
PDF
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
PPTX
Spring boot et. al. para el impaciente
PDF
Docker para Data Scientist - Master en Data Science URJC
PPTX
Asp.net 5 en linux , herramientas e integración
PPTX
Alta disponibilidad y balanceo de carga con Linux y nginx
PDF
Cocoapods
PDF
Taller de biicode@UVA
PPT
Creación de Plataformas
Curso Angular 9 - CodeURJC - Marzo 2020
Codemotion 2015 crash y youdebug
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Administra tu código con Git y Github
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
grails.org.mx Primera Reunion
Introducción Nodejs
Seminario Grails
Fury DevopsConf 2015
Java
Liferay 6 1, Internacionalización en nuestros desarrollos
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
Spring boot et. al. para el impaciente
Docker para Data Scientist - Master en Data Science URJC
Asp.net 5 en linux , herramientas e integración
Alta disponibilidad y balanceo de carga con Linux y nginx
Cocoapods
Taller de biicode@UVA
Creación de Plataformas
Publicidad

Similar a Docker4developers Codemotion2016 (20)

PDF
BEEVA | Introducción a Docker
PDF
Introducción a Docker
PDF
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
PDF
TECNIRIS47-1b.pdf
PPTX
Meetup V.E.No.M. y docker
PPTX
Primeros pasos con Docker
PDF
Jenkins Peru Meetup Docker Ecosystem
PDF
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
PPTX
Jug málaga docker 101 - final
PPTX
Docker para desarrolladores .NET
PDF
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
PDF
Curso Kubernetes CodeURJC
PDF
Desarrollando una Extensión para Docker
PPTX
PPTX
Docker como recurso de aula para docentes
PDF
Docker orientado al desarrollo de aplicaciones con NodeJS
PPTX
Docker Ecosystem - Part I - Engine
PPTX
Game of pods - Kubernetes
PPTX
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
PDF
Introduction to docker. Stratio
BEEVA | Introducción a Docker
Introducción a Docker
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
TECNIRIS47-1b.pdf
Meetup V.E.No.M. y docker
Primeros pasos con Docker
Jenkins Peru Meetup Docker Ecosystem
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Jug málaga docker 101 - final
Docker para desarrolladores .NET
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Curso Kubernetes CodeURJC
Desarrollando una Extensión para Docker
Docker como recurso de aula para docentes
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker Ecosystem - Part I - Engine
Game of pods - Kubernetes
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Introduction to docker. Stratio
Publicidad

Último (6)

PPTX
sistemas de informacion.................
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Conceptos basicos de Base de Datos y sus propiedades
sistemas de informacion.................
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Derechos_de_Autor_y_Creative_Commons.pptx
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
AutoCAD Herramientas para el futuro, Juan Fandiño
Conceptos basicos de Base de Datos y sus propiedades

Docker4developers Codemotion2016

  • 2. MADRID · NOV 18-19 · 2016 Quién soy? Raúl Requero García Twitter: @rrequero LinkedIn: https://www.linkedin.com/in/requerogarciaraul
  • 3. MADRID · NOV 18-19 · 2016 Qué cosas hago?
  • 4. MADRID · NOV 18-19 · 2016 Qué cosas hago?
  • 5. MADRID · NOV 18-19 · 2016 Que vamos a ver? - Qué es docker? - Como crear nuestra imagen (Dockerfile) - Y ahora, cómo ejecutamos nuestra imagen? Creamos nuestro container - Mi aplicación necesita varios contenedores. Qué hago? -> Docker Compose - Recomendaciones
  • 6. MADRID · NOV 18-19 · 2016 Veámoslo todo con ejemplos Código en github: https://github.com/rrequero/docker4developers-talk-codemotion-2 016
  • 7. MADRID · NOV 18-19 · 2016 Qué es docker? - Es un proyecto de código abierto (https://github.com/docker/docker) - Permite crear contenedores Linux de forma programática (LXC LinuX Containers) - Escrito en Golang
  • 8. MADRID · NOV 18-19 · 2016 Qué es docker? - Ligero - Portable - Autosuficiente - Repositorio de imágenes (docker-hub)
  • 9. MADRID · NOV 18-19 · 2016 Qué es docker? Se basa en 2 conceptos principales: - Imagen - Contenedor
  • 10. MADRID · NOV 18-19 · 2016 FROM Nos proporciona un “lenguaje” con el que definir nuestros contenedores. Cómo crear nuestra imagen? Dockerfile MAINTAINER COPY RUN EXPOSE VOLUME WORKDIR USER CMD ENTRYPOINT ENV
  • 11. MADRID · NOV 18-19 · 2016 Siempre se parte de una imagen base. Cómo crear nuestra imagen? Dockerfile
  • 12. MADRID · NOV 18-19 · 2016 Vamos añadiendo cambios sobre la imagen base. ej: Estos cambios se reflejarán como “capas” que docker cachea. Cómo crear nuestra imagen? Dockerfile
  • 13. MADRID · NOV 18-19 · 2016 Por último, hacemos build de nuestro Dockerfile con docker-cli Cómo crear nuestra imagen? Dockerfile
  • 14. MADRID · NOV 18-19 · 2016 Posibles parámetros: - --no-cache: No utiliza las capas cacheadas - --force-rm: No genera una cache por cada capa - -t: Da un nombre a la imagen. Ej: -t <name>:<version> - Más..... Cómo crear nuestra imagen? Dockerfile
  • 15. MADRID · NOV 18-19 · 2016 Ejemplo en vivo :) Código en github: https://github.com/rrequero/docker4developers-talk-codemo tion-2016#second-part Cómo crear nuestra imagen? Dockerfile
  • 16. MADRID · NOV 18-19 · 2016 Docker-cli nos ofrece el comando run para ejecutar una instancia de una imagen: Y ahora, cómo ejecutamos nuestra imagen?
  • 17. MADRID · NOV 18-19 · 2016 Posibles parámetros: - -e: Pasar variables de entorno ej: -e NODE_ENV=prod - -p: Exponer puertos hacia fuera del contenedor ej: -p 80:8000 - -v: Volúmenes. Compartir directorios entre el contenedor y nuestra máquina ej: -v $PWD/app:/home/user/app - -d: Ejecutar en background - Más..... Y ahora, cómo ejecutamos nuestra imagen?
  • 18. MADRID · NOV 18-19 · 2016 Además de run, nos proporciona otros comandos como: - docker stop <idContainer>: Parar el contenedor - docker ps: Muestra los contenedores en ejecución (con la opción -a muestra todos los contenedores parados y en ejecución) - docker images: Muestra las imágenes que tenemos en nuestra máquina - docker rmi <idImage>: Elimina una imagen - docker exec <container> <command>: Ejecuta un comando en el contenedor. Ej: docker exec -it <name/id> bash Y ahora, cómo ejecutamos nuestra imagen?
  • 19. MADRID · NOV 18-19 · 2016 Docker compose: - Herramienta que nos proporciona Docker - Permite componer de forma programática un entorno de varios contenedores que se pueden comunicar entre sí - docker-compose.yml Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 20. MADRID · NOV 18-19 · 2016 Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 21. MADRID · NOV 18-19 · 2016 - Cada contenedor es un “service” - Cada “service” se puede configurar: - Imagen o dockerfile - Puertos - Volúmenes - Variables de entorno - etc - Se pueden establecer dependencias entre ellos (depends_on) - v2 genera una subred entre los servicios definidos (v1 necesita link) Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 22. MADRID · NOV 18-19 · 2016 Para generar las imágenes de los servicios que dependen de un Dockerfile, ejecutamos: Para ejecutar los contenedores Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 23. MADRID · NOV 18-19 · 2016 Docker-compose también nos proporciona comandos otros comandos, como: - docker-compose stop: Para todos los contenedores definidos en el docker-compose - docker-compose rm: Elimina los contenedores definidos en el docker-compose Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 24. MADRID · NOV 18-19 · 2016 Ejemplo en vivo :) Código en github: https://github.com/rrequero/docker4developers-talk-codemo tion-2016#final-part Mi aplicación necesita varios contenedores. Qué hago? -> Docker compose
  • 25. MADRID · NOV 18-19 · 2016 Seguridad: - Nunca dejéis una imagen con el usuario de root. Establecer un usuario. - Solo ejecutar contenedores de confianza - No instaleis software innecesario - Chequear los contenedores de forma periódica en busca de posibles vulnerabilidades y regenerarlos con los parches de seguridad - Cuidado con que volúmenes exponeis --volume=/var/run/docker.sock:/tmp/docker.sock Recomendaciones
  • 26. MADRID · NOV 18-19 · 2016 Performance: - Borrar de forma periódica las imágenes sin tag que se generan y/o utilizar --force-rm - Al generar una imagen, intentar equilibrar el número de capas/cache que utilizais. ¿Porque? Cada capa genera una imagen intermedia de cache que ocupa espacio. Recomendaciones
  • 27. MADRID · NOV 18-19 · 2016 Utilidades: - Borrar todas los contenedores parados docker rm $(docker ps -a -q) - Borrar todas las imagenes sin tag docker rmi $(docker images | grep "^<none>" | awk "{print $3}") Recomendaciones
  • 28. MADRID · NOV 18-19 · 2016 Preguntas / dudas Twitter: @rrequero LinkedIn: https://www.linkedin.com/in/requerogarciaraul
  • 29. MADRID · NOV 18-19 · 2016 Muchas gracias