Subido por Thony Carrera

Docker

Anuncio
DOCKER
BY: ANTHONY ALCARRAZ
ANDRES MONTENEGRO
ANTHONY CARRERA
SAMIR VERA BALDEON
JORDAN PEREZ ALLER
INTRODUCCION
- Las aplicaciones necesitan mas recursos
- Con el nuevo modelo de contenedores podemos abstraernos del S.O. donde corre el motor
Docker.
- Diseñados para un mundo Cloud, distribuido.
- ANTECEDENTES :
- Por el año 2000 nace FreeBSD jails – separa sus servicios y la de los clients
- 2015-Open VZ - Tecnología de virtualización a nivel de sistema operativo que utiliza un kernel
Linux parcheado para virtualización
- Docker fue liberado como código abierto en marzo de 2013
- Docker como nace un proyecto interno dentro dotCloud
¿ QUE ES DOCKER ?
Docker es una plataforma abierta para que desarrolladores y
administradores de sistemas desarrollen, envíen y ejecuten aplicaciones
distribuidas, ya sea en computadoras portátiles, maquinas virtuales de
centros de datos o en la nube.
En Docker lo que se hace es usar las funcionalidades del Kernel para
encapsular un sistema, de esta forma el proyecto que corre dentro de el no
tendrá conocimiento que está en un contenedor.
VENTAJAS
• Uso eficiente de recursos (CPU, Memoria)
• Menor consumo de disco (mucho menor)
• Control de versiones de imágenes y capas
• Levantan muy rápido (milisegundos)
• Ideales para Microservicios y DevOps
• Fácilmente automatizables
• Son muy fáciles de transportar y recrear (text file)
DOCKER VS VIRTUAL MACHINES (VM)
ARQUITECTURA DOCKER
COMPONENTES DE DOCKER
❑ Imagen.- Son plantillas (que incluyen una aplicación, los
binarios y las librerías necesarias) que se utilizan para
construir contenedores Docker.
❑ Contenedores.- Es una capa de ejecución de imágenes las
cuales son paquetes cerrados que contienen todo lo
encapsulado dentro de una solo imagen completamente.
❑ Volumenes.-Un volumen de datos es una carpeta física en
nuestro equipos donde se almacenan datos del contenedor.
❑ Redes.- Herramienta que permite conectar contenedores a
travez de redes.
IMAGEN
# Enlista las imagenes cargadas en el docker server.
• $docker images
# Cargar una imagen official o de docker hub al docker server
• $docker pull nombre_de_imagen
• Fichero Dockerfile
• Es un archivo de texto plano que contiene las instrucciones necesarias para automatizar la creacion
de una imagen que será utilizada posteriormente para la ejecución de instancias especificas ( i.e.
contenedores ).
DOCKERFILE
FROM nginx
RUN useradd docker_user
COPY nombre_de_aplicación_web /usr/share/nginx/html
ENV archivo Docker
WORKDIR /usr/share/nginx/html
EXPOSE 90
LABEL versión: 1
USER Docker_user
VOLUMEN /var/log/nginx
CMD nginx -g 'daemon off;
CONTENEDORES
#Crea imagen personalizada
• $docker build –t “nombre_de_tag” –m “limite_de_memoria” –f “define_nuevo_dockerfile” –network
“define_la_red_del_contenedor” .
#Enlista los contenedores activos y terminados
• $ docker ps -a
# Corre imagen en Segundo plano
• $docker run -d “nombre_de_imagen”
# Corre imagen en Segundo plano definiendo puertos
• $docker run -d -p “Puerto_de_maquina”:“Puerto_del_contenedor” “nombre_de_imagen”
#Detiene y elimina el contenedor.
• $docker rm -f “name_del_contenedor”
NETWORK
•
$docker network ls .- Enlista las redes docker
# Crear una nueva red
• $docker network create “nombre_de_la_red”
#Crear una red y especificar la subnet y gateway
• $docker network create --subnet 192.168.0.0/24 --gateway 192.168.0.1 “nombre_de_la_red”
#Muestra la configuracion de la red
• $docker network inspect “nombre de la red”
#Asignar una direccion ip a un contenedor
• $docker run --network “nombre_de_red” --ip
DOCKER COMPOSE
Docker Compose es una herramienta que permite
simplificar el uso de Docker, generando scripts que
facilitan el diseño y la construcción de servicios.
Con Docker Compose puedes crear diferentes
contenedores y al mismo tiempo, en cada contenedor,
diferentes servicios
DOCKER-COMPOSE.YML
Version: “numero de version de docker compose”
Services:
“nombre-del-servicio”:
image: “Nombre de la imagen”
container-name: “Nombre del contenedor”
ports:
-“Puerto-maquina”: “Puerto de contenedor”
environment:
- “define variables de entorno”
volumens:
- “ “nombre-del-volume”: “directorio la cual queremos almacenar” ”
network:
- “nombre de la red”
Volumes:
“nombre-del-volume”
Network:
“nombre de la red creada en docker”:
DOCKER COMPOSE
#Crear imagenes con docker compose
$docker compose build
#Especificar el docker compose.yml y correrlo
$docker-compose -f “nombre del nuevo docker-compose.yml” up –d
#Acabar con un contenedor
$docker-compose -f “nombre del contenedor” down
REFERENCIAS
❑
❑
❑
❑
❑
❑
❑
https://docs.docker.com/
http://qadfhc.blogspot.com/2018/05/microservicios-ventajas-y-desventajas.html
https://www.oscarblancarteblog.com/2018/05/22/que-son-los-microservicios/
https://medium.com/platformer-blog/practical-guide-on-writing-a-dockerfile-for-your-application-89376f88b3b5
https://eltallerdelbit.com/imagenes-docker/
https://dockertips.com/volumenes
https://guacamole.apache.org/doc/gug/guacamole-docker.html
Descargar