CodeGym /Cursos /Docker SELF /Términos básicos de Docker

Términos básicos de Docker

Docker SELF
Nivel 10 , Lección 0
Disponible

6.1 Imágenes (Images)

Para trabajar de forma eficiente con Docker, es necesario entender varios términos clave: imágenes, contenedores y registros. Vamos a desglosarlos y entender para qué sirven y cómo interactúan entre sí.

Imagen de Docker — es una plantilla a partir de la cual se crean los contenedores. La imagen contiene todos los componentes necesarios para ejecutar una aplicación: sistema operativo, aplicación, bibliotecas y dependencias, así como archivos de configuración. Haciendo una analogía con la POO: la imagen de Docker es la clase, y el contenedor es el objeto de la clase. Las imágenes se crean utilizando un Dockerfile: un archivo de texto que describe los pasos para la creación de la imagen.

Características principales de las imágenes:

  1. Estructura en capas: las imágenes consisten en varias capas. Hay una capa base, y cada capa siguiente representa cambios en comparación con la capa anterior. Esto permite ahorrar espacio y reducir el tiempo de carga.
  2. Reutilización: la misma imagen se puede usar para crear múltiples contenedores.
  3. Portabilidad: las imágenes se pueden transferir entre diferentes sistemas, lo que las hace ideales para el desarrollo, pruebas y despliegue de aplicaciones en diferentes entornos.

Ejemplos de uso de imágenes:

Creación de una imagen propia: puedes crear tu propia imagen escribiendo un Dockerfile donde indiques la configuración de tu aplicación y sus dependencias.

dockerfile

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/app.py"]

Uso de una imagen lista: puedes usar imágenes disponibles en Docker Hub para desplegar rápidamente aplicaciones estándar, como servidores web o bases de datos.

Terminal

docker pull nginx 

Este comando descarga la imagen de nginx desde el repositorio público Docker Hub.

6.2 Contenedores (Containers)

Un contenedor de Docker es una instancia en ejecución de una imagen. Los contenedores aíslan aplicaciones y sus dependencias dentro de un entorno de ejecución separado, lo que permite ejecutarlas independientemente del sistema anfitrión y otros contenedores. Los contenedores son livianos ya que utilizan el núcleo del sistema operativo anfitrión y no crean un núcleo separado como hacen las máquinas virtuales.

Características principales de los contenedores:

  • Aislamiento: los contenedores aíslan aplicaciones, garantizando su funcionamiento independiente y evitando conflictos de dependencias.
  • Livianos: los contenedores consumen menos recursos en comparación con las máquinas virtuales, ya que no requieren un sistema operativo separado.
  • Inicio rápido: los contenedores se inician y detienen mucho más rápido que las máquinas virtuales, lo que los hace ideales para entornos dinámicos y escalabilidad.

Ejemplos de uso de contenedores:

Iniciar un contenedor: puedes iniciar un contenedor desde una imagen usando el comando docker run.

Terminal

docker run -d -p 80:80 --name mynginx nginx

Gestión de contenedores: Docker proporciona comandos para gestionar contenedores: start, stop, restart, rm y exec.

Terminal

docker stop mynginx
docker rm mynginx

Sobre todos los comandos y sus parámetros aprenderás en las próximas lecturas.

6.3 Registros (Registries)

Un registro de Docker es un almacén de imágenes Docker. Los registros permiten a los desarrolladores y organizaciones almacenar, gestionar y distribuir imágenes de contenedores. Existen registros públicos y privados.

Características principales de los registros:

  • Registros públicos: como Docker Hub, proporcionan acceso a una gran cantidad de imágenes creadas por la comunidad y los desarrolladores oficiales.
  • Registros privados: se utilizan para almacenar y gestionar imágenes dentro de una organización, proporcionando control de acceso y seguridad.
  • Integración con CI/CD: los registros se integran fácilmente con sistemas de integración y distribución continua, lo que permite automatizar el proceso de creación y despliegue de imágenes.

Ejemplos de uso de registros:

1. Docker Hub: un registro público (y el más popular) de imágenes Docker. Proporciona acceso a muchas imágenes listas para usar (y a menudo verificadas, como se puede ver en las estadísticas de descarga).

Terminal

docker pull nginx
docker push myusername/myimage:tag  

2. Registro privado: puedes configurar y usar tu propio registro utilizando Docker Registry.

Terminal

docker run -d -p 5000:5000 --name registry registry:2
docker tag myimage localhost:5000/myimage
docker push localhost:5000/myimage

Interacción de imágenes, contenedores y registros

Estos tres componentes están estrechamente relacionados entre sí y forman la base del trabajo con Docker:

  • Creación de una imagen: el desarrollador crea una imagen usando un Dockerfile y la guarda localmente.
  • Subir la imagen al registro: la imagen se sube a un registro (por ejemplo, Docker Hub o un registro privado), donde se almacena y se vuelve accesible para otros usuarios o sistemas.
  • Ejecución de un contenedor: el usuario descarga la imagen del registro y ejecuta un contenedor, que aísla la aplicación y asegura su ejecución.

6.4 Orquestación (Orchestration)

Orquestación — es el proceso de gestionar múltiples contenedores en un entorno distribuido. Las herramientas de orquestación ayudan a automatizar el despliegue, escalado y gestión de contenedores.

  • Kubernetes: la plataforma de orquestación de contenedores más popular, que permite gestionar un clúster de contenedores en varios nodos.
  • Docker Swarm: plataforma de orquestación integrada en Docker para crear y gestionar clústeres de Docker.
  • Funciones de orquestación: escalado automático, autorrecuperación, gestión de redes y balanceo de carga.

6.5 Redes (Networks)

Las redes en Docker permiten que los contenedores interactúen entre sí y con el mundo exterior. Docker proporciona varios tipos de redes para diferentes escenarios de uso.

  • Bridge: la red predeterminada creada por Docker. Los contenedores en esta red bridge pueden interactuar entre sí.
  • Host: el contenedor utiliza las interfaces de red de la máquina host, obteniendo acceso directo a ellas.
  • Overlay: se usa para crear redes entre varios demonios Docker. Es necesaria para la orquestación.
  • None: desactiva todas las interfaces de red del contenedor. Útil para tareas aisladas.

6.6 Volúmenes (Volumes)

Los volúmenes (Volumes) son un mecanismo para almacenar de manera persistente los datos de los contenedores. Permiten guardar los datos fuera del contenedor, para que la información no se pierda al reiniciar o eliminar el contenedor.

  • Crear un volumen: los volúmenes se crean con el comando docker volume create.
  • Montar un volumen: los volúmenes se conectan a los contenedores con la bandera -v al iniciarlos.
  • Ventajas: los volúmenes proporcionan una forma conveniente de guardar e intercambiar datos entre contenedores, además de ofrecer un mejor rendimiento en comparación con directorios vinculados (bind mounts).

¡Importante! Un volumen es un disco duro virtual que se puede conectar a una máquina virtual o a un contenedor. Por lo general, se almacena en el sistema operativo host como un archivo normal.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION