Mapa Mental
Equipo Curso Estandar
Created on November 6, 2024
Over 30 million people create interactive content in Genially.
Check out what others have designed:
Transcript
Conceptos y aplicaciones
Docker
DockerFile
Construcción de imagenes
Registro de imagenes
DockerHub
Contenedores
Imagenes
Lorem ipsum dolor sit
Lorem ipsum dolor sit
Conceptos Básicos
Imagenes oficiales y verificadas para su uso de sistemas y aplicaciones comunmente utilizados como ubuntu o mysql.
- Acceso a imágenes listas para producción: Ahorra tiempo al no tener que configurar aplicaciones y sistemas desde cero.
- Colaboración y Distribución: Facilita la colaboración y distribución de aplicaciones entre desarrolladores y equipos.
- Automatización: Simplifica la integración continua y la entrega continua (CI/CD) con construcciones automáticas y despliegues de imágenes.
Ventajas
Docker Hub Registry: Actúa como un registro, proporcionando a los desarrolladores un lugar donde pueden alojar sus imágenes para luego descargarlas y usarlas en cualquier máquina con Docker instalado
Automated Builds: Permite configurar repositorios en Docker Hub para realizar construcciones automáticas de imágenes desde código fuente en GitHub o Bitbucket.
Repositorios de imagenes accesibles publica/privadamente.
Caracteristicas clave
¿Qué es?
Docker Hub es el repositorio de imágenes en línea más grande y oficial de Docker. Actúa como un "almacén" público donde los desarrolladores pueden buscar, almacenar, distribuir y compartir imágenes de contenedores.
EXPOSE: Informa sobre el puerto en el que la aplicación en el contenedor escuchará.
CMD: Define el comando por defecto que se ejecutará cuando el contenedor se inicie. Solo puede haber una instrucción CMD en un Dockerfile; si se especifican varias, se utiliza solo la última.
WORKDIR: Establece el directorio de trabajo en el contenedor. Los comandos subsecuentes se ejecutarán desde este directorio.
COPY: Copia archivos desde el sistema de archivos local del host al sistema de archivos del contenedor.
RUN: Ejecuta comandos en la imagen, como la instalación de paquetes. Cada comando RUN crea una nueva capa en la imagen.
FROM: Especifica la imagen base que se utilizará. Este es el primer paso en casi cualquier Dockerfile y define el sistema operativo o entorno básico.
# Usa una imagen base de Python FROM python:3.8-slim #Establece el directorio de trabajo WORKDIR /app #Copia los archivos de la aplicación COPY . /app #Instala las dependencias RUN pip install -r requirements.txt #Expone el puerto que la aplicación usará EXPOSE 5000 #Define el comando para iniciar la aplicación CMD ["python", "app.py"]
Archivo de texto que contiene instrucciones para crear una imagen de Docker. Define los pasos que Docker debe seguir para construir una imagen personalizada, incluyendo qué sistema operativo base usar, qué aplicaciones instalar, qué archivos agregar, qué configuraciones realizar y cómo iniciar la aplicación.
Ejemplo
Estructura
¿Qué es?
-t nombre-de-la-imagen: Asigna una etiqueta o nombre a la imagen que estás construyendo. Esto facilita el uso de la imagen después de creada. . : Indica el contexto de construcción, que es el directorio actual. Docker tomará el Dockerfile y todos los archivos necesarios desde este directorio.
Una vez que tienes el Dockerfile listo, puedes construir la imagen ejecutando el comando docker build. Ejecuta el siguiente comando en la terminal, en el directorio donde tienes el Dockerfile:
Construcción de imagenes.
Registrar imágenes en DockerHub permite compartir tus aplicaciones y entornos fácilmente con otros usuarios. Para hacerlo, primero debes iniciar sesión en Docker desde la terminal, etiquetar la imagen con tu nombre de usuario y el nombre deseado, y luego subirla a DockerHub. Este proceso facilita la distribución y despliegue de aplicaciones en cualquier entorno compatible con Docker.
Registro de imagenes en DockerHub
- Portabilidad: Puedes ejecutar la misma imagen en cualquier sistema que soporte Docker.
- Consistencia: Como incluyen todas las dependencias, no hay conflictos entre entornos.
- Rapidez y eficiencia: Al ser basadas en capas y reutilizables, las imágenes ahorran tiempo y recursos en comparación con instalaciones repetitivas.
Beneficios
Versionamiento: Las imágenes pueden tener versiones mediante etiquetas (tags). Por ejemplo, nginx:latest o nginx:1.21. Esto permite controlar qué versión de la imagen se está utilizando.
Inmutabilidad: Las imágenes son inmutables, es decir, no se pueden modificar una vez creadas. Si se realizan cambios, se crea una nueva imagen basada en la original.
Capas y almacenamiento en capas: Las imágenes están compuestas de varias capas, cada una creada en base a la anterior.
Caracteristicas clave
Imagenes
Plantillas inmutables que contienen todo lo necesario para ejecutar una aplicación en un entorno Docker. Cada imagen es una "Fotografia" de un sistema de archivos que incluye:
- Sistema operativo base (como Ubuntu, Debian o Alpine).
- Dependencias necesarias para ejecutar una aplicación (librerías, herramientas, paquetes).
- Código de la aplicación que se quiere ejecutar.
- Configuración específica, como variables de entorno y comandos de inicio.
Detención y eliminación: Los contenedores pueden detenerse y eliminarse cuando ya no se necesitan. Los datos almacenados dentro del contenedor se pierden a menos que se usen volúmenes o bind mounts para almacenamiento persistente.
- Mas ligero que una maquina virtual.
- Ejecución mas rapida.
- Aislado pero comparte kernel.
- Bajo uso de recursos al no necesitar de un SO completo.
Comparado ante una maquina virtual
Interacción: Se puede acceder a los contenedores de varias formas (por ejemplo, abriendo un puerto para comunicaciones externas o usando un volumen para almacenamiento).
Ejecución: Cuando se ejecuta, el contenedor inicia con el sistema de archivos especificado en la imagen y carga el proceso definido (por ejemplo, un servidor web, una base de datos, etc.).
Creación: Los contenedores se crean a partir de una imagen, que proporciona una "instantánea" de lo que el contenedor debe contener y cómo debe funcionar.
Funcionalidad
Contenedores
Instancias en ejecución de una imagen de Docker. Son unidades ligeras, autónomas y portátiles que ejecutan aplicaciones en un entorno aislado.