SlideShare una empresa de Scribd logo
Despliegue de Aplicaciones de Docker
Evolución y Gestión de la Configuración
UNIVERSIDAD LIBRE SECCIONAL CALI
FACULTAD DE INGENIERIA
SISTEMAS OPERATIVOS
Ing. Esp. Fernando Velez Varela, MSc
https://docs.docker.com/engine/installation/
Descarga Docker
INTRODUCCIÓN A DOCKER
¿Qué es Docker?
• Docker es un software para la gestión de contenedores
¿Qué es un
contenedor?
• Una forma de empaquetar software en un
formato que incluye todo lo necesario para
hacerlo funcionar y se ejecuta aislado del
resto de la máquina
• Tiene dos conceptos muy relacionados:
– La imagen, que es un paquete
ejecutable que incluye todo lo necesario
para ejecutar un software
– El contenedor, que es la instancia en
ejecución de una imagen, es decir, lo
que la imagen
¿Y esto no es lo mismo que una máquina virtual?
Linux y Docker, Practicas de Sistemas Operativos
PRIMEROS PASOS
Instala Docker
(si no funciona http://play-with-docker.com )
Nuestro “hello world” con Docker
> docker run hello-world
Docker CLI
Lanzar una imagen
Nombre de la imagen
¿Qué pasó?
Otro ejemplo
> docker run -i -t ubuntu /bin/bash
Interactivo
Comando a ejecutar
Otro más
> docker run –p 8000:80 -d
kitematic/hello-world-nginx
Puerto local : Puerto contenedor
En segundo plano
Otro más
> docker run -p 8010:80 -d -v
/c/Users/me/Desktop/nginx_files:/website_files
kitematic/hello-world-nginx
En Linux y Mac hay que poner la ruta completa.
Si se usa Windows 10 hay que poner C:/Users…
Edita el index.html que ha aparecido en nginx_files y prueba cómo se actualiza dinámicamente
¿Puedo tener más de una máquina?
> docker ps
Esta es una lista de comandos básicos:
docker run -d -p 4000:80 friendlyname#Run "friendlyname" mapping port 4000 to 80
docker container ls # List all running containers
docker container ls -a # List all containers, even those not running
docker container stop <hash> # Gracefully stop the specified container
docker container kill <hash> # Force shutdown of the specified container
docker container rm <hash> # Remove specified container from this machine
docker container rm $(docker container ls -a -q) # Remove all containers
docker image ls -a # List all images on this machine
docker image rm <image id> # Remove specified image from this machine
docker image rm $(docker image ls -a -q) # Remove all images from this machine
docker logs <containerName> # Shows the log of a container
¿Y de dónde salen las imágenes?
https://hub.docker.com
DOCKERIZANDO APLICACIONES
¿Qué queremos conseguir?
• Tener empaquetada nuestra aplicación y sus dependencias en una imagen
para poder desplegarla donde queramos simplemente con
> docker run miAplicacion
Imágenes de docker
• Una imagen es una colección de archivos
• Se parte de una imagen base y luego se construyen imágenes personalizadas
encima
• Un Dockerfile es un fichero que describe las instrucciones para construir una
nueva imagen
• Las imágenes están en capas y cada capa representa un diff de la capa
anterior
Pasos para Dockerizar una aplicación
Tener una
aplicación
desarrollada
Escribir un
Dockerfile
Construir la
imagen
Publicar la
imagen
(opcional)
Nuestra aplicación
• Un “Hello world” hecho en Java con Spring MVC
– Entrando en la ruta /greeting dentro de donde esté el WAR desplegado aparece un “Hola,
mundo!”
– Por ejemplo, si el WAR se despliega en hello-java-0.1.0, la ruta es hello-java-
0.1.0/greeting/
• Se empaqueta en un WAR
El Dockerfile
# Base image
FROM tomcat:8-jre8
# Copy war to tomcat path
ADD target/hello-java-0.1.0.war /usr/local/tomcat/webapps
Consejos para escribir Dockerfiles: https://docs.docker.com/engine/userguide/eng-
image/dockerfile_best-practices/
Construimos la imagen y la comprobamos
> docker build –t javahello .
> docker images
> docker run -it --rm -p 8080:8080 javahello
Publicar nuestra imagen (opcional)
• Hay que registrarse en DockerHub (http://hub.docker.com )
> docker login
> docker push mi_usuario/javahello
CONCLUSIONES
¿Para qué me sirve Docker como desarrollador?
• Entornos de desarrollo:
– Compartibles
– Seguros
– Limpios
– Extensibles
• Asegura el mismo entorno en:
– Todos los desarrolladores
– Pruebas
– Producción
• Facilita gestionar varias versiones de una misma aplicación
¿Para qué me sirve como administrador?
• Despliegue independiente de la tecnología (Java, PHP, NodeJS…)
• Elimina inconsistencias entre entornos de desarrollo, prueba y producción
• Permite desplegar de forma similar en:
– El portátil del desarrollador
– En máquinas virtuales en un data center
– En servidores cloud (AWS, Azure, DigitalOcean…)
– En una mezcla de ellos
• Ofrece facilidades de escalado y gestión de clusteres
Es MUCHO más ligero que una Máquina Virtual
Y sobre todo…
En Docker se recomienda seguir el principio de responsabilidad única:
1
Contenedor
1 Servicio
Recursos
• Cursos:
– Laboratorios virtuales gratuitos: http://training.play-with-docker.com/
– Cursos gratuitos oficiales: http://training.docker.com/category/self-paced-online
• Libros:
– Docker Cookbook: http://shop.oreilly.com/product/0636920036791.do
– Using Docker: http://shop.oreilly.com/product/0636920035671.do
– Docker: Up & Running: http://shop.oreilly.com/product/0636920036142.do
Agradecimientos
• Parte de estas transparencias están muy inspiradas (incluso copiadas) de una
presentación de Docker del Ingeniero Antonio Gámez
(http://personal.us.es/agamez2/conferencias/docker-y-kubernetes-el-futuro-de-
la-distribucion-de-aplicaciones-en-la-nube/ )

Más contenido relacionado

PDF
Taller docker _es-cl
PDF
BEEVA | Introducción a Docker
PDF
docker.pdf
PPTX
FROM lost to the Docker 2020
PDF
nerdear.la 2016 - Docker workshop
PDF
FROM lost to the docker
PDF
Docker en el entorno de desarrollo
PPTX
Docker containers-itb-2021
Taller docker _es-cl
BEEVA | Introducción a Docker
docker.pdf
FROM lost to the Docker 2020
nerdear.la 2016 - Docker workshop
FROM lost to the docker
Docker en el entorno de desarrollo
Docker containers-itb-2021

Similar a Linux y Docker, Practicas de Sistemas Operativos (20)

PDF
Curso gratuito de Docker
PPTX
Docker Ecosystem - Part I - Engine
PPTX
Introduccion a Docker curso para saber como funciona la dockeriazacion -3
 
PDF
De desarrollo a producción usando docker
PDF
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
PDF
Jenkins Peru Meetup Docker Ecosystem
PDF
Dockeriza tu entorno de desarrollo
PPTX
Docker como recurso de aula para docentes
PDF
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
PDF
Docker 101 Workshop - WomenWhoCode Buenos Aires
PPTX
Introduccion a Docker curso para saber como funciona la dockeriazacion -2
 
PDF
Introduccion A Docker
PDF
Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java
PPTX
Docker 2014 v2
PDF
Docker desde cero
PDF
Docker4developers Codemotion2016
PPTX
Primeros pasos con Docker
PDF
TECNIRIS47-1b.pdf
PDF
Introduction to docker. Stratio
PDF
Introducción a Docker
Curso gratuito de Docker
Docker Ecosystem - Part I - Engine
Introduccion a Docker curso para saber como funciona la dockeriazacion -3
 
De desarrollo a producción usando docker
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Jenkins Peru Meetup Docker Ecosystem
Dockeriza tu entorno de desarrollo
Docker como recurso de aula para docentes
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker 101 Workshop - WomenWhoCode Buenos Aires
Introduccion a Docker curso para saber como funciona la dockeriazacion -2
 
Introduccion A Docker
Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java
Docker 2014 v2
Docker desde cero
Docker4developers Codemotion2016
Primeros pasos con Docker
TECNIRIS47-1b.pdf
Introduction to docker. Stratio
Introducción a Docker
Publicidad

Más de Fernando Velez Varela (20)

PDF
TiT_Guia4.pdf
PDF
TiT_Guia3.pdf
PDF
TiT_Guia2.pdf
PDF
TiT_Guia1.pdf
PPT
Clase 07a_Transmisión de Señales Digitales en Banda Base (1).ppt
PPT
SeminarioDeInves_APG_FVV.ppt
PDF
DMD_2010_Al_Husseini.pdf
PDF
Overview of Mechanical Ventilation - Critical Care Medicine - Merck Manuals P...
PDF
Husseini 2010 - Design and Prototyping of a Low-cost Portable Mechanical Vent...
PDF
The-Pandemic-Ventilator DIY Manual.pdf
PDF
NovelFrameworkforResourceDiscoveryandSelf-ConfigurationinSoftwareDefinedWirel...
PDF
TFE001006.pdf
PDF
Poster-DesignofSDNmanageableswitch.pdf
PDF
redes-por-software-SDN.pdf
PDF
SEGURIDAD EN REDES DEFINIDAS POR SOFTWARE.pdf
PDF
MininetasSDNPlatform.pdf
PDF
T-ESPE-048694.pdf
PDF
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
PDF
MaldonadoHidalgoD.pdf
PDF
ContrerasPardoCarlosAlberto2014.pdf
TiT_Guia4.pdf
TiT_Guia3.pdf
TiT_Guia2.pdf
TiT_Guia1.pdf
Clase 07a_Transmisión de Señales Digitales en Banda Base (1).ppt
SeminarioDeInves_APG_FVV.ppt
DMD_2010_Al_Husseini.pdf
Overview of Mechanical Ventilation - Critical Care Medicine - Merck Manuals P...
Husseini 2010 - Design and Prototyping of a Low-cost Portable Mechanical Vent...
The-Pandemic-Ventilator DIY Manual.pdf
NovelFrameworkforResourceDiscoveryandSelf-ConfigurationinSoftwareDefinedWirel...
TFE001006.pdf
Poster-DesignofSDNmanageableswitch.pdf
redes-por-software-SDN.pdf
SEGURIDAD EN REDES DEFINIDAS POR SOFTWARE.pdf
MininetasSDNPlatform.pdf
T-ESPE-048694.pdf
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
MaldonadoHidalgoD.pdf
ContrerasPardoCarlosAlberto2014.pdf
Publicidad

Último (20)

PPTX
Seminario de telecomunicaciones para ingeniería
PDF
Estrategias de apoyo de tecnología 2do periodo pdf
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PDF
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PPTX
Contexto Normativo NSR10, presentacion 2025
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
PPTX
NILS actividad 4 PRESENTACION.pptx pppppp
PDF
1132-2018 espectrofotometro uv visible.pdf
PDF
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
PDF
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PDF
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
PDF
Electricidad-Estatica-Peligros-Prevencion.pdf
PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PDF
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
Seminario de telecomunicaciones para ingeniería
Estrategias de apoyo de tecnología 2do periodo pdf
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Sustancias Peligrosas de empresas para su correcto manejo
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Contexto Normativo NSR10, presentacion 2025
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
NILS actividad 4 PRESENTACION.pptx pppppp
1132-2018 espectrofotometro uv visible.pdf
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
Módulo-de Alcance-proyectos - Definición.pdf
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
Electricidad-Estatica-Peligros-Prevencion.pdf
prg2_t01_p01_Fundamentos POO - parte1.pdf
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
Manual ISO9001_2015_IATF_16949_2016.pptx

Linux y Docker, Practicas de Sistemas Operativos

  • 1. Despliegue de Aplicaciones de Docker Evolución y Gestión de la Configuración UNIVERSIDAD LIBRE SECCIONAL CALI FACULTAD DE INGENIERIA SISTEMAS OPERATIVOS Ing. Esp. Fernando Velez Varela, MSc
  • 4. ¿Qué es Docker? • Docker es un software para la gestión de contenedores
  • 5. ¿Qué es un contenedor? • Una forma de empaquetar software en un formato que incluye todo lo necesario para hacerlo funcionar y se ejecuta aislado del resto de la máquina • Tiene dos conceptos muy relacionados: – La imagen, que es un paquete ejecutable que incluye todo lo necesario para ejecutar un software – El contenedor, que es la instancia en ejecución de una imagen, es decir, lo que la imagen
  • 6. ¿Y esto no es lo mismo que una máquina virtual?
  • 9. Instala Docker (si no funciona http://play-with-docker.com )
  • 10. Nuestro “hello world” con Docker > docker run hello-world Docker CLI Lanzar una imagen Nombre de la imagen
  • 12. Otro ejemplo > docker run -i -t ubuntu /bin/bash Interactivo Comando a ejecutar
  • 13. Otro más > docker run –p 8000:80 -d kitematic/hello-world-nginx Puerto local : Puerto contenedor En segundo plano
  • 14. Otro más > docker run -p 8010:80 -d -v /c/Users/me/Desktop/nginx_files:/website_files kitematic/hello-world-nginx En Linux y Mac hay que poner la ruta completa. Si se usa Windows 10 hay que poner C:/Users… Edita el index.html que ha aparecido en nginx_files y prueba cómo se actualiza dinámicamente
  • 15. ¿Puedo tener más de una máquina? > docker ps
  • 16. Esta es una lista de comandos básicos: docker run -d -p 4000:80 friendlyname#Run "friendlyname" mapping port 4000 to 80 docker container ls # List all running containers docker container ls -a # List all containers, even those not running docker container stop <hash> # Gracefully stop the specified container docker container kill <hash> # Force shutdown of the specified container docker container rm <hash> # Remove specified container from this machine docker container rm $(docker container ls -a -q) # Remove all containers docker image ls -a # List all images on this machine docker image rm <image id> # Remove specified image from this machine docker image rm $(docker image ls -a -q) # Remove all images from this machine docker logs <containerName> # Shows the log of a container
  • 17. ¿Y de dónde salen las imágenes? https://hub.docker.com
  • 19. ¿Qué queremos conseguir? • Tener empaquetada nuestra aplicación y sus dependencias en una imagen para poder desplegarla donde queramos simplemente con > docker run miAplicacion
  • 20. Imágenes de docker • Una imagen es una colección de archivos • Se parte de una imagen base y luego se construyen imágenes personalizadas encima • Un Dockerfile es un fichero que describe las instrucciones para construir una nueva imagen • Las imágenes están en capas y cada capa representa un diff de la capa anterior
  • 21. Pasos para Dockerizar una aplicación Tener una aplicación desarrollada Escribir un Dockerfile Construir la imagen Publicar la imagen (opcional)
  • 22. Nuestra aplicación • Un “Hello world” hecho en Java con Spring MVC – Entrando en la ruta /greeting dentro de donde esté el WAR desplegado aparece un “Hola, mundo!” – Por ejemplo, si el WAR se despliega en hello-java-0.1.0, la ruta es hello-java- 0.1.0/greeting/ • Se empaqueta en un WAR
  • 23. El Dockerfile # Base image FROM tomcat:8-jre8 # Copy war to tomcat path ADD target/hello-java-0.1.0.war /usr/local/tomcat/webapps Consejos para escribir Dockerfiles: https://docs.docker.com/engine/userguide/eng- image/dockerfile_best-practices/
  • 24. Construimos la imagen y la comprobamos > docker build –t javahello . > docker images > docker run -it --rm -p 8080:8080 javahello
  • 25. Publicar nuestra imagen (opcional) • Hay que registrarse en DockerHub (http://hub.docker.com ) > docker login > docker push mi_usuario/javahello
  • 27. ¿Para qué me sirve Docker como desarrollador? • Entornos de desarrollo: – Compartibles – Seguros – Limpios – Extensibles • Asegura el mismo entorno en: – Todos los desarrolladores – Pruebas – Producción • Facilita gestionar varias versiones de una misma aplicación
  • 28. ¿Para qué me sirve como administrador? • Despliegue independiente de la tecnología (Java, PHP, NodeJS…) • Elimina inconsistencias entre entornos de desarrollo, prueba y producción • Permite desplegar de forma similar en: – El portátil del desarrollador – En máquinas virtuales en un data center – En servidores cloud (AWS, Azure, DigitalOcean…) – En una mezcla de ellos • Ofrece facilidades de escalado y gestión de clusteres
  • 29. Es MUCHO más ligero que una Máquina Virtual Y sobre todo…
  • 30. En Docker se recomienda seguir el principio de responsabilidad única: 1 Contenedor 1 Servicio
  • 31. Recursos • Cursos: – Laboratorios virtuales gratuitos: http://training.play-with-docker.com/ – Cursos gratuitos oficiales: http://training.docker.com/category/self-paced-online • Libros: – Docker Cookbook: http://shop.oreilly.com/product/0636920036791.do – Using Docker: http://shop.oreilly.com/product/0636920035671.do – Docker: Up & Running: http://shop.oreilly.com/product/0636920036142.do
  • 32. Agradecimientos • Parte de estas transparencias están muy inspiradas (incluso copiadas) de una presentación de Docker del Ingeniero Antonio Gámez (http://personal.us.es/agamez2/conferencias/docker-y-kubernetes-el-futuro-de- la-distribucion-de-aplicaciones-en-la-nube/ )