SlideShare una empresa de Scribd logo
101
WWW.SLIDEFOREST.COM
Juani Gallo
@JuaniGallo
Programador
Emprendedor
Founder
1. Que es Docker
2. Como escribir un Dockerfile
3. Manejo de contenedores e imagenes
¿Qué es Docker?
Docker es un proyecto de código abierto que automatiza el despliegue
de aplicaciones dentro de contenedores de software, proporcionando una capa
adicional de abstracción y automatización de virtualización de aplicaciones en
múltiples sistemas operativos.
🤔
🤔
🤔
🤔
🤔 🤔
🤔
Docker crea una computadora virtual adentro de tu computadora con todo lo
necesario para correr tu aplicación.
¿Para que sirve Docker?
• Para correr nuestra aplicación con la
misma infraestructura que producción
• Para simplificar el onboarding de nuestra
aplicación
• Levantar servicios en distintos lenguajes
sin tener que instalar todo lo relacionado a
cada uno de ellos
1. Para correr nuestra aplicación con la
misma infraestructura que producción
2. Para simplificar el onboarding de nuestra
aplicación
3. Levantar servicios en distintos lenguajes
sin tener que instalar todo lo relacionado
a cada uno de ellos
Conceptos básicos
Un contenedor es una pieza de software que contiene todo lo necesario
para correr una aplicación (código + dependencias).
Un container siempre tiene un estado asignado y los estados
disponibles son: “created”, “restarting”, “running”, “removing”,
“paused”, “exited” y “dead”
Container
El contenedor se creo sin errores pero no esta corriendo. Este estado
es útil para cuando queremos crear un contenedor pero todavía no
utilizarlo
Created
El contenedor se esta reiniciando. Este estado puede darse en el caso
que desde un comando reiniciemos el contenedor o bien por un error
relacionado a código en el mismo.
Restarting
Nuestro contenedor esta creado y corriendo sin ningún problema
Running
El contenedor se esta removiendo pero todavía sigue creado, en este
momento ya no podemos acceder al mismo
Removing
El contenedor esta creado pero pausado. En este estado podemos
acceder al contenedor pero su código no está en ejecución
Paused
Podemos llegar a este estado porque el container termino de ejecutar
su código de forma correcta o bien porque se encontró con algún
problema durante su ejecución. Si su “status code” es 0 quiere decir
que el container termino sin problemas, cualquier otro numero distinto
de 0 implica que el container no termino su ejecución de forma correcta.
Exited
Es el estado terminal del container. Usualmente se da cuando el
container pierde acceso de escritura a archivos necesarios para
funcionar.
Dead
Docker
Sistema operativo
Container
Código
Dependencias
Aplicación con un único container
Docker
Sistema operativo
Container
Código
Dependencias
Aplicación con tres containers
Container
Código
Dependencias
Container
Código
Dependencias
Docker crea una computadora virtual adentro de tu computadora con todo lo
necesario para correr tu aplicación.
containers
Una imagen es una plantilla creada a partir de una serie de instrucciones
para luego crear containers en base a esta. Para crear imágenes vamos
a crear un archivo llamado Dockerfile.
En https://hub.docker.com/ podes encontrar una biblioteca con
muchísimas imágenes públicas (por ejemplo: Ubuntu, NGINX, Mongo,
Node)
Image
Instalemos Docker
Desde MacOS Sierra 10.12 para arriba
https://hub.docker.com/editions/community/docker-ce-desktop-mac
Si tiene un OS más antiguo que Sierra 10.12, hay que instalar
Docker Toolbox
https://docs.docker.com/toolbox/overview/
MacOS
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl
gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://
download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Ubuntu
https://cutt.ly/nerdearla-docker
Ubuntu: https://docs.docker.com/install/linux/docker-ce/ubuntu/
Debian: https://docs.docker.com/install/linux/docker-ce/debian/
Fedora: https://docs.docker.com/install/linux/docker-ce/fedora/
CentOS: https://docs.docker.com/install/linux/docker-ce/centos/
Otras distros de Linux
https://hub.docker.com/
Hay que crearse una cuenta y descargar el Docker Desktop
Windows 7, 8 o 10 versión “Pro” 64 bits
Para versiones que no son Pro o versiones viejas de
Windows, hay que instalar el Docker Toolbox
https://github.com/docker/toolbox/releases/download/v19.03.1/
DockerToolbox-19.03.1.exe
El Docker Toolbox instala 3 archivos, Docker Quickstart,
Oracle VM y Kitematic.
Una vez instalado hay que activar el Hyper-V en la BIOS de la
PC.
Windows 7, 8 o 10 versión “Home” 64 bits
En todas las PCs se entra al BIOS de una manera diferente, HP suele ser F1,
Lenovo F8, muchas otras es Supr, hay que apretar este botón varias veces
cuando apenas se prende la PC. Vamos a entrar a una pantalla azul con
varias opciones, cada PC tiene su propia configuración, lo que vamos a tener
que buscar es la opción “Security” o “Configuration”, una vez dentro vamos a
tener que pasar a “enable” la opción que diga: “Hyper-V”, puede también
llamarse “Virtualization”, “Intel Vitualization” o “VTX”.
Una vez que Hyper-V está activado, ya podemos volver a iniciar el Windows y
abrir el ejecutable: “Docker Quickstart”.
Activar Hyper-V (Windows)
https://courseit.com.ar/static/docker.pdf
Dockerfile
Es un documento de texto que contiene todos los comandos que vamos
a ejecutar a la hora de crear nuestra imagen. Se podría decir que
nuestro Dockerfile va a ser la receta que Docker va a seguir para poder
crear nuestra imagen.
¿Qué es un Dockerfile?
El comando FROM nos va a servir para basar nuestra nueva imagen en
una imagen ya existente (las podemos ver en: https://hub.docker.com).
Este comando siempre tiene que ser el primero en nuestro Dockerfile
FROM
El comando RUN nos va a servir para correr comandos en una terminal
dentro de nuestro container. Esto es util para cambiar configuración a
nivel sistema operativo o bien instalar paquetes de forma global.
RUN
El comando CMD nos va a servir para indicarle a nuestra imagen que
comando tiene que correr por defecto al crear nuestro container. En caso
de que nuestro comando contenga parámetros hay que escribir el
comando en formato de array[]
CMD
El comando EXPOSE nos va a servir para indicarle a nuestro container
que puerto escuchar mientras este corriendo. Esto es especialmente útil
para cuando estamos corriendo un servidor.
EXPOSE
El comando WORKDIR nos va a servir para indicarle a nuestra imagen
que directorio tiene que usar como base para los comandos que
modifiquen el sistema de archivos. En caso de que no exista el directorio
indicado, Docker lo va a crear.
WORKDIR
COPY
El comando COPY nos va a servir para copiar archivos desde nuestra
computadora a nuestra imagen de Docker. Con el comando COPY
podemos copiar archivos o directorios completos.
COPY
El comando COPY nos va a servir para copiar archivos desde nuestra
computadora a nuestra imagen de Docker. Con el comando COPY
podemos copiar archivos o directorios completos.
Nuestra computadora
Imagen docker
ENV
El comando ENV nos va a servir para crear variables de ambiente dentro
de nuestra imagen. Por ejemplo para indicarle si estamos en un
ambiente de testing o productivo.
¿Qué hace este Dockerfile?
¿Qué hace este Dockerfile?
Se rompe
¿Qué hace este Dockerfile?
https://github.com/juanigallo/bad-dockerfile-nerdearla
https://labs.play-with-docker.com/
Instrucciones básicas
docker ps
El comando docker ps nos sirve para listar todos los contenedores que
actualmente estén corriendo.
En caso de querer ver los contenedores que ya terminaron o murieron en el
pasado, podemos correr el comando docker ps -a
docker ps
docker ps
Identificador unico
generado por Docker
Imagen asociada
al contenedor
Comando CMD que corrimos
en nuestro Dockerfile
Hace cuanto que fue
creado el contenedor
Estado actual del contenedor
Puerto en el que esta corriendo nuestro
contenedor
Puerto computadora -> puerto contenedor
Nombre de nuestro
contenedor
docker build
El comando docker build nos sirve para crear una imagen en base a un
Dockerfile
El uso normal del comando es: docker build . lo que nos va a generar una
imagen en base a un Dockerfile situado en esa misma carpeta.
Para crear una imagen
+
docker build
…
docker images
El comando docker images nos sirve para listar todas las imágenes que
creamos
docker images
docker images
El nombre de
nuestra imagen
El tag/version de
nuestra imagen
El identificador unico de
nuestra imagen
Hace cuanto fue creada
nuestra imagen
Peso de nuestra
imagen
docker run
El comando docker run nos sirve para crear un container a partir de una
imagen
Proyecto a Dockerizar
https://github.com/juanigallo/actividad-docker-nerdearla
GitHub
¡A codear! 💪
Slides
https://courseit.com.ar/static/docker.pdf

Más contenido relacionado

PDF
Docker 101 Workshop - WomenWhoCode Buenos Aires
PDF
Taller docker _es-cl
PDF
Curso gratuito de Docker
PDF
Dockeriza tu entorno de desarrollo
PPTX
Docker como recurso de aula para docentes
PDF
Linux y Docker, Practicas de Sistemas Operativos
PDF
Introduction to docker. Stratio
PDF
Instalacion y uso basico de Docker.
Docker 101 Workshop - WomenWhoCode Buenos Aires
Taller docker _es-cl
Curso gratuito de Docker
Dockeriza tu entorno de desarrollo
Docker como recurso de aula para docentes
Linux y Docker, Practicas de Sistemas Operativos
Introduction to docker. Stratio
Instalacion y uso basico de Docker.

Similar a docker.pdf (20)

PDF
BEEVA | Introducción a Docker
PPTX
Docker containers-itb-2021
PDF
Docker introducción - Flisol 2015 Huancayo
PDF
Docker desde cero
PDF
nerdear.la 2016 - Docker workshop
PDF
Introduccion A Docker
PDF
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
PPTX
Introduccion a Docker curso para saber como funciona la dockeriazacion -2
 
PDF
De desarrollo a producción usando docker
PDF
Docker en el entorno de desarrollo
PDF
DockerCon 2022 Spanish Room-ONBOARDING.pdf
PPTX
Primeros pasos con Docker
PPTX
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
PDF
Vagrant y Docker - Guía práctica de uso
PDF
Docker4developers Codemotion2016
PDF
Jenkins Peru Meetup Docker Ecosystem
PPTX
FROM lost to the Docker 2020
PPTX
Docker para Dummies
PDF
Instalacion de Docker CE en Windows 10
PPTX
Usando docker
BEEVA | Introducción a Docker
Docker containers-itb-2021
Docker introducción - Flisol 2015 Huancayo
Docker desde cero
nerdear.la 2016 - Docker workshop
Introduccion A Docker
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Introduccion a Docker curso para saber como funciona la dockeriazacion -2
 
De desarrollo a producción usando docker
Docker en el entorno de desarrollo
DockerCon 2022 Spanish Room-ONBOARDING.pdf
Primeros pasos con Docker
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Vagrant y Docker - Guía práctica de uso
Docker4developers Codemotion2016
Jenkins Peru Meetup Docker Ecosystem
FROM lost to the Docker 2020
Docker para Dummies
Instalacion de Docker CE en Windows 10
Usando docker
Publicidad

Último (6)

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

docker.pdf

  • 1. 101
  • 3. 1. Que es Docker 2. Como escribir un Dockerfile 3. Manejo de contenedores e imagenes
  • 5. Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.
  • 8. Docker crea una computadora virtual adentro de tu computadora con todo lo necesario para correr tu aplicación.
  • 10. • Para correr nuestra aplicación con la misma infraestructura que producción
  • 11. • Para simplificar el onboarding de nuestra aplicación
  • 12. • Levantar servicios en distintos lenguajes sin tener que instalar todo lo relacionado a cada uno de ellos
  • 13. 1. Para correr nuestra aplicación con la misma infraestructura que producción 2. Para simplificar el onboarding de nuestra aplicación 3. Levantar servicios en distintos lenguajes sin tener que instalar todo lo relacionado a cada uno de ellos
  • 15. Un contenedor es una pieza de software que contiene todo lo necesario para correr una aplicación (código + dependencias). Un container siempre tiene un estado asignado y los estados disponibles son: “created”, “restarting”, “running”, “removing”, “paused”, “exited” y “dead” Container
  • 16. El contenedor se creo sin errores pero no esta corriendo. Este estado es útil para cuando queremos crear un contenedor pero todavía no utilizarlo Created
  • 17. El contenedor se esta reiniciando. Este estado puede darse en el caso que desde un comando reiniciemos el contenedor o bien por un error relacionado a código en el mismo. Restarting
  • 18. Nuestro contenedor esta creado y corriendo sin ningún problema Running
  • 19. El contenedor se esta removiendo pero todavía sigue creado, en este momento ya no podemos acceder al mismo Removing
  • 20. El contenedor esta creado pero pausado. En este estado podemos acceder al contenedor pero su código no está en ejecución Paused
  • 21. Podemos llegar a este estado porque el container termino de ejecutar su código de forma correcta o bien porque se encontró con algún problema durante su ejecución. Si su “status code” es 0 quiere decir que el container termino sin problemas, cualquier otro numero distinto de 0 implica que el container no termino su ejecución de forma correcta. Exited
  • 22. Es el estado terminal del container. Usualmente se da cuando el container pierde acceso de escritura a archivos necesarios para funcionar. Dead
  • 24. Docker Sistema operativo Container Código Dependencias Aplicación con tres containers Container Código Dependencias Container Código Dependencias
  • 25. Docker crea una computadora virtual adentro de tu computadora con todo lo necesario para correr tu aplicación. containers
  • 26. Una imagen es una plantilla creada a partir de una serie de instrucciones para luego crear containers en base a esta. Para crear imágenes vamos a crear un archivo llamado Dockerfile. En https://hub.docker.com/ podes encontrar una biblioteca con muchísimas imágenes públicas (por ejemplo: Ubuntu, NGINX, Mongo, Node) Image
  • 28. Desde MacOS Sierra 10.12 para arriba https://hub.docker.com/editions/community/docker-ce-desktop-mac Si tiene un OS más antiguo que Sierra 10.12, hay que instalar Docker Toolbox https://docs.docker.com/toolbox/overview/ MacOS
  • 29. sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository "deb [arch=amd64] https:// download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io Ubuntu
  • 31. Ubuntu: https://docs.docker.com/install/linux/docker-ce/ubuntu/ Debian: https://docs.docker.com/install/linux/docker-ce/debian/ Fedora: https://docs.docker.com/install/linux/docker-ce/fedora/ CentOS: https://docs.docker.com/install/linux/docker-ce/centos/ Otras distros de Linux
  • 32. https://hub.docker.com/ Hay que crearse una cuenta y descargar el Docker Desktop Windows 7, 8 o 10 versión “Pro” 64 bits
  • 33. Para versiones que no son Pro o versiones viejas de Windows, hay que instalar el Docker Toolbox https://github.com/docker/toolbox/releases/download/v19.03.1/ DockerToolbox-19.03.1.exe El Docker Toolbox instala 3 archivos, Docker Quickstart, Oracle VM y Kitematic. Una vez instalado hay que activar el Hyper-V en la BIOS de la PC. Windows 7, 8 o 10 versión “Home” 64 bits
  • 34. En todas las PCs se entra al BIOS de una manera diferente, HP suele ser F1, Lenovo F8, muchas otras es Supr, hay que apretar este botón varias veces cuando apenas se prende la PC. Vamos a entrar a una pantalla azul con varias opciones, cada PC tiene su propia configuración, lo que vamos a tener que buscar es la opción “Security” o “Configuration”, una vez dentro vamos a tener que pasar a “enable” la opción que diga: “Hyper-V”, puede también llamarse “Virtualization”, “Intel Vitualization” o “VTX”. Una vez que Hyper-V está activado, ya podemos volver a iniciar el Windows y abrir el ejecutable: “Docker Quickstart”. Activar Hyper-V (Windows)
  • 37. Es un documento de texto que contiene todos los comandos que vamos a ejecutar a la hora de crear nuestra imagen. Se podría decir que nuestro Dockerfile va a ser la receta que Docker va a seguir para poder crear nuestra imagen. ¿Qué es un Dockerfile?
  • 38. El comando FROM nos va a servir para basar nuestra nueva imagen en una imagen ya existente (las podemos ver en: https://hub.docker.com). Este comando siempre tiene que ser el primero en nuestro Dockerfile FROM
  • 39. El comando RUN nos va a servir para correr comandos en una terminal dentro de nuestro container. Esto es util para cambiar configuración a nivel sistema operativo o bien instalar paquetes de forma global. RUN
  • 40. El comando CMD nos va a servir para indicarle a nuestra imagen que comando tiene que correr por defecto al crear nuestro container. En caso de que nuestro comando contenga parámetros hay que escribir el comando en formato de array[] CMD
  • 41. El comando EXPOSE nos va a servir para indicarle a nuestro container que puerto escuchar mientras este corriendo. Esto es especialmente útil para cuando estamos corriendo un servidor. EXPOSE
  • 42. El comando WORKDIR nos va a servir para indicarle a nuestra imagen que directorio tiene que usar como base para los comandos que modifiquen el sistema de archivos. En caso de que no exista el directorio indicado, Docker lo va a crear. WORKDIR
  • 43. COPY El comando COPY nos va a servir para copiar archivos desde nuestra computadora a nuestra imagen de Docker. Con el comando COPY podemos copiar archivos o directorios completos.
  • 44. COPY El comando COPY nos va a servir para copiar archivos desde nuestra computadora a nuestra imagen de Docker. Con el comando COPY podemos copiar archivos o directorios completos. Nuestra computadora Imagen docker
  • 45. ENV El comando ENV nos va a servir para crear variables de ambiente dentro de nuestra imagen. Por ejemplo para indicarle si estamos en un ambiente de testing o productivo.
  • 46. ¿Qué hace este Dockerfile?
  • 47. ¿Qué hace este Dockerfile?
  • 49. ¿Qué hace este Dockerfile?
  • 53. docker ps El comando docker ps nos sirve para listar todos los contenedores que actualmente estén corriendo. En caso de querer ver los contenedores que ya terminaron o murieron en el pasado, podemos correr el comando docker ps -a
  • 55. docker ps Identificador unico generado por Docker Imagen asociada al contenedor Comando CMD que corrimos en nuestro Dockerfile Hace cuanto que fue creado el contenedor Estado actual del contenedor Puerto en el que esta corriendo nuestro contenedor Puerto computadora -> puerto contenedor Nombre de nuestro contenedor
  • 56. docker build El comando docker build nos sirve para crear una imagen en base a un Dockerfile El uso normal del comando es: docker build . lo que nos va a generar una imagen en base a un Dockerfile situado en esa misma carpeta.
  • 57. Para crear una imagen +
  • 59. docker images El comando docker images nos sirve para listar todas las imágenes que creamos
  • 61. docker images El nombre de nuestra imagen El tag/version de nuestra imagen El identificador unico de nuestra imagen Hace cuanto fue creada nuestra imagen Peso de nuestra imagen
  • 62. docker run El comando docker run nos sirve para crear un container a partir de una imagen