SlideShare una empresa de Scribd logo
101
WWW.SLIDEFOREST.COM
Juani Gallo
@_JuanGallo
Programador
Emprendedor
Founder
WWW.SLIDEFOREST.COM
Damián Catanzaro
@DamianCatanzaro
Programador
Tech Lead en Digiventures
¿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 util 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 esta 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
https://www.docker.com/products/docker-desktop
Windows o Mac
1. sudo apt update

2. sudo apt install apt-transport-https ca-certificates curl software-properties-common

3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu
bionic stable”

5. sudo apt update

6. apt-cache policy docker-ce

7. sudo apt install docker-ce

8. sudo systemctl status docker
Ubuntu
https://cutt.ly/courseit-docker
Ubuntu
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 parametros 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 util
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?
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 imagesEl 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/dcatanzaro/wwcodeba-workshop-docker
GitHub
A codear! "
Slides
https://courseit.com.ar/static/docker.pdf
#
Llevando nuestro proyecto a producción
Now es un servicio de deploys de la empresa Zeit que nos deja subir
nuestro código a la nube. Se caracteriza por ser fácil, rápido y
✨ gratuito ✨
Now
Instalar Now
Configurar Now
En la terminal vamos a tener que correr el siguiente comando:
now login
El cual nos va a pedir nuestro mail y luego una verificación del mismo.
Deploy
Y listo! si su Docker está correctamente configurado Now va a tomar
esa configuración y hacer un build y start del mismo dándoles una url
de este estilo: https://wwwcodeba-31mqesgtm.now.sh/
Extra
1. now ls nos permite ver nuestros deploys
2. now teams nos permite crear nuevos
equipos de trabajo
3. now alias nos permite hacer nuestra URL
más linda

4. now help nos permite ver toda la lista de
comandos

Más contenido relacionado

La actualidad más candente

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
Jan Sanchez
 
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
Sergio Zambrano Delfa
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
BEEVA_es
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
Eric Zeidan
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
Rafael Hernamperez Martin
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
Javier Cortejoso de Andrés
 
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
Alejandro Escanero Blanco
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
Mariano German Egui
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
Fernando Mayo Fernández
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
Felipe de Morais
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
Javier Sánchez Ochando
 
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
Vicente Gerardo Guzman Lucio
 
Usando docker
Usando dockerUsando docker
Usando docker
Gustavo Muslera
 
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
Mario IC
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Open Canarias
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Javier Sánchez Ochando
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
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
Christian Rodriguez
 
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
Marcelo Ochoa
 
Docker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - ComposeDocker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - Compose
Mario IC
 

La actualidad más candente (20)

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
 
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
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
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
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
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
 
Usando docker
Usando dockerUsando docker
Usando 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
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
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: 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
 
Docker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - ComposeDocker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - Compose
 

Similar a Docker 101 Workshop - WomenWhoCode Buenos Aires

docker.pdf
docker.pdfdocker.pdf
docker.pdf
AntonyPrez3
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
Julio Palma Vázquez
 
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
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
StivenLopez46
 
Docker and networking
Docker and networkingDocker and networking
Docker and networking
Cristian Casis Villarreal
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
enyert
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Plain Concepts
 
Docker: de localhost a producción
Docker: de localhost a producciónDocker: de localhost a producción
Docker: de localhost a producción
Claudio Guerra
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
Oscar Gensollen
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
Mario IC
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
Alejandro Hernández
 
Docker
DockerDocker
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Gdglima docker-ecosystem
Gdglima docker-ecosystemGdglima docker-ecosystem
Gdglima docker-ecosystem
Edith Puclla
 
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
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
Software Guru
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
Angel Borroy López
 
Containers - Hablemos de Docker
Containers - Hablemos de DockerContainers - Hablemos de Docker
Containers - Hablemos de Docker
Luis Toscano
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Jose Antonio Carrasco Moreno
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
quaip
 

Similar a Docker 101 Workshop - WomenWhoCode Buenos Aires (20)

docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
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]
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Docker and networking
Docker and networkingDocker and networking
Docker and networking
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
 
Docker: de localhost a producción
Docker: de localhost a producciónDocker: de localhost a producción
Docker: de localhost a producción
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Docker
DockerDocker
Docker
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Gdglima docker-ecosystem
Gdglima docker-ecosystemGdglima docker-ecosystem
Gdglima docker-ecosystem
 
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
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Containers - Hablemos de Docker
Containers - Hablemos de DockerContainers - Hablemos de Docker
Containers - Hablemos de Docker
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 

Último

modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 

Último (20)

modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 

Docker 101 Workshop - WomenWhoCode Buenos Aires

  • 1. 101
  • 4.
  • 6. 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.
  • 7. !
  • 9. Docker crea una computadora virtual adentro de tu computadora con todo lo necesario para correr tu aplicación.
  • 10. ¿Para que sirve Docker?
  • 11. • Para correr nuestra aplicación con la misma infraestructura que producción
  • 12. • Para simplificar el onboarding de nuestra aplicación
  • 13. • Levantar servicios en distintos lenguajes sin tener que instalar todo lo relacionado a cada uno de ellos
  • 14. 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
  • 16. 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
  • 17. El contenedor se creo sin errores pero no esta corriendo. Este estado es util para cuando queremos crear un contenedor pero todavía no utilizarlo Created
  • 18. 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
  • 19. Nuestro contenedor esta creado y corriendo sin ningún problema Running
  • 20. El contenedor se esta removiendo pero todavía sigue creado, en este momento ya no podemos acceder al mismo Removing
  • 21. El contenedor esta creado pero pausado. En este estado podemos acceder al contenedor pero su código no esta en ejecución Paused
  • 22. 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
  • 23. Es el estado terminal del container. Usualmente se da cuando el container pierde acceso de escritura a archivos necesarios para funcionar. Dead
  • 25. Docker Sistema operativo Container Código Dependencias Aplicación con tres containers Container Código Dependencias Container Código Dependencias
  • 26. Docker crea una computadora virtual adentro de tu computadora con todo lo necesario para correr tu aplicación. containers
  • 27. 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
  • 30. 1. sudo apt update
 2. sudo apt install apt-transport-https ca-certificates curl software-properties-common
 3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 4. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable”
 5. sudo apt update
 6. apt-cache policy docker-ce
 7. sudo apt install docker-ce
 8. sudo systemctl status docker Ubuntu
  • 33. 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?
  • 34. 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
  • 35. 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
  • 36. 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 parametros hay que escribir el comando en formato de array[] CMD
  • 37. El comando EXPOSE nos va a servir para indicarle a nuestro container que puerto escuchar mientras este corriendo. Esto es especialmente util para cuando estamos corriendo un servidor. EXPOSE
  • 38. 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
  • 39. 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.
  • 40. 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
  • 41. 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.
  • 42. ¿Qué hace este Dockerfile?
  • 44. 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
  • 46. 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
  • 47. 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.
  • 48. Para crear una imagen +
  • 50. docker images El comando docker images nos sirve para listar todas las imágenes que creamos
  • 52. docker imagesEl 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
  • 53. docker run El comando docker run nos sirve para crear un container a partir de una imagen
  • 59. Now es un servicio de deploys de la empresa Zeit que nos deja subir nuestro código a la nube. Se caracteriza por ser fácil, rápido y ✨ gratuito ✨ Now
  • 61. Configurar Now En la terminal vamos a tener que correr el siguiente comando: now login El cual nos va a pedir nuestro mail y luego una verificación del mismo.
  • 62. Deploy Y listo! si su Docker está correctamente configurado Now va a tomar esa configuración y hacer un build y start del mismo dándoles una url de este estilo: https://wwwcodeba-31mqesgtm.now.sh/
  • 63. Extra 1. now ls nos permite ver nuestros deploys 2. now teams nos permite crear nuevos equipos de trabajo 3. now alias nos permite hacer nuestra URL más linda
 4. now help nos permite ver toda la lista de comandos