curso
Docker para principiantes: Guía práctica de contenedores
Cuando empecé a utilizar Docker, me di cuenta rápidamente de lo potente que era. Imagina configurar tu entorno de desarrollo en minutos en lugar de horas o ejecutar aplicaciones en diferentes máquinas sin el clásico problema de "funciona en mi máquina".
Docker simplifica la creación, distribución y ejecución de aplicaciones empaquetándolas en contenedores ligeros y portátiles. Tanto si eres desarrollador, científico de datos o administrador de sistemas, dominar Docker puede ahorrarte dolores de cabeza y hacer que tus flujos de trabajo sean más eficientes.
En este tutorial, te guiaré a través de los conceptos básicos: instalación de Docker, comprensión de los conceptos clave y ejecución de tu primera aplicación en contenedores. Al final, no sólo sabrás cómo funciona Docker, sino que también tendrás experiencia práctica en su uso, sentando una base sólida para temas más avanzados. ¡Vamos a sumergirnos!
¿Qué es Docker?
Docker es una plataforma de contenedorización de código abierto que simplifica el despliegue de aplicaciones empaquetando el software y sus dependencias en una unidad estandarizada llamada contenedor. A diferencia de las máquinas virtuales tradicionales, los contenedores Docker comparten el núcleo del sistema operativo anfitrión, lo que los hace más eficientes y ligeros.
Los contenedores garantizan que una aplicación se ejecute de la misma forma en entornos de desarrollo, pruebas y producción. Esto reduce los problemas de compatibilidad y mejora la portabilidad entre varias plataformas. Debido a su flexibilidad y escalabilidad, Docker se ha convertido en una herramienta crucial en los flujos de trabajo modernos de DevOps y desarrollo nativo en la nube.
Logotipo oficial de Docker.
Instalar Docker
Docker puede instalarse en varios sistemas operativos, como Windows, macOS y Linux. Aunque la funcionalidad básica sigue siendo la misma en todas las plataformas, el proceso de instalación difiere ligeramente según el sistema. A continuación encontrarás instrucciones paso a paso para instalar Docker en tu sistema operativo preferido.
Instalar Docker en Windows
- Descargar Docker Desktop para Windows.
Descargar el instalador de Docker Desktop para Windows
- Ejecuta el instalador y sigue las instrucciones de instalación.
Instalación de Docker Desktop para Windows
- Activa la integración WSL 2 si se te pide.
- Verifica la instalación ejecutando
docker –version
en PowerShell.
Comprobación de la versión de Docker tras la instalación mediante Powershell
5. Inicia la aplicación Docker Desktop desde tu menú de ejecución.
Iniciar la aplicación de escritorio Docker en Windows
Instalar Docker en macOS
- Descarga Docker Desktop para Mac.
Descargar el instalador de Docker Desktop para Mac
- Abre el archivo
.dmg
descargado y arrastra Docker a la carpeta Aplicaciones. - Inicia Docker y completa la configuración.
- Verifica la instalación utilizando
docker –version
en el terminal.
Instalar Docker en Linux (Ubuntu)
- Actualiza las listas de paquetes:
sudo apt update
- Instala las dependencias:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- Añade la clave GPG oficial de Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Añade el repositorio de Docker:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Instala Docker:
sudo apt install docker-ce
- Verifica la instalación:
docker –version
Domina Docker y Kubernetes
Conceptos básicos de Docker
Ahora que tienes Docker instalado, puede que estés ansioso por lanzarte y empezar a ejecutar contenedores. Pero antes de hacerlo, es importante comprender algunos conceptos clave que forman la base del trabajo de Docker. Estos conceptos te ayudarán a navegar por Docker con más eficacia y a evitar los errores comunes de los principiantes.
En el corazón de Docker están imágenesque sirven como planos para los contenedores; contenedoresque son las instancias en ejecución de estas imágenes; y Hub Dockerun repositorio centralizado para compartir y gestionar imágenes.
Exploremos cada uno de estos conceptos con más detalle.
Imágenes Docker
Las imágenes Docker son los bloques de construcción fundamentales de los contenedores. Son plantillas inmutables, de sólo lectura, que contienen todo lo necesario para ejecutar una aplicación, incluido el sistema operativo, el código de la aplicación, el tiempo de ejecución y las dependencias.
Las imágenes se construyen utilizando un Dockerfile
, que define las instrucciones para crear una imagen capa a capa.
Las imágenes pueden almacenarse y recuperarse de registros de contenedores como Docker Hub.
Aquí tienes algunos comandos de ejemplo para trabajar con imágenes:
docker pull nginx
: Obtén la última imagen de Nginx de Docker Hub.docker images
: Lista todas las imágenes disponibles en la máquina local.docker rmi nginx
: Eliminar una imagen de la máquina local.
Contenedores Docker
Un contenedor Docker es una instancia en ejecución de una imagen Docker. Los contenedores proporcionan un entorno de ejecución aislado donde las aplicaciones pueden ejecutarse sin interferir entre sí ni con el sistema anfitrión. Cada contenedor tiene su propio sistema de archivos, red y espacio de procesos, pero comparte el núcleo anfitrión.
Los contenedores siguen un ciclo de vida sencillo que incluye su creación, inicio, parada y eliminación. Aquí tienes un desglose de los comandos comunes de gestión de contenedores:
- Crear un contenedor:
docker create
odocker run
- Poner en marcha un contenedor:
docker start
- Detener un contenedor:
docker stop
- Reiniciar un contenedor:
docker restart
- Borrar un contenedor:
docker rm
Veamos un ejemplo práctico. El siguiente comando ejecuta un contenedor Nginx en modo separado (ejecutándose en segundo plano), asignando el puerto 80 dentro del contenedor al puerto 8080 en la máquina anfitriona:
docker run -d -p 8080:80 nginx
Tras ejecutar este comando, Docker extraerá la imagen de Nginx (si no está ya disponible), creará un contenedor y lo iniciará.
Para comprobar todos los contenedores en ejecución y parados:
docker ps -a
Esto mostrará una lista de todos los contenedores y detalles como su estado y puertos asignados.
Hub Docker
Docker Hub es un servicio de registro basado en la nube para encontrar, almacenar y distribuir imágenes de contenedores. Los usuarios pueden enviar imágenes personalizadas a Docker Hub y compartirlas de forma pública o privada.
Aquí tienes algunos comandos para interactuar con Docker Hub:
docker login
: Autentícate con Docker Hub.docker push my-image
: Sube una imagen personalizada a Docker Hub.docker search ubuntu
: Busca imágenes oficiales y comunitarias.docker pull ubuntu
: Descarga una imagen de Ubuntu desde Docker Hub.
¿Eres nuevo en la contenedorización? Consigue una base sólida con el curso Conceptos de Containerización y Virtualización.
Ejecutar tu primer contenedor Docker
Ahora que hemos cubierto los conceptos básicos de Docker, ¡es hora de ponerlos en práctica! Empecemos ejecutando nuestro primer contenedor para asegurarnos de que Docker está instalado correctamente y funciona como se espera.
Para probar tu instalación de Docker, abre PowerShell (Windows) o Terminal (Mac y Linux) y ejecútalo:
docker run hello-world
Esto extrae la imagen hello-world
de DockerHub y la ejecuta en un contenedor.
Ejemplo de imagen Docker hello-world
Ahora, vayamos un paso más allá y ejecutemos una aplicación del mundo real: un servidor web Nginx. Ejecuta el siguiente comando:
docker run -d -p 8080:80 nginx
El comando anterior hace lo siguiente:
- La bandera
-d
ejecuta el contenedor en modo separado, lo que significa que se ejecuta en segundo plano. - La bandera
-p 8080:80
asigna el puerto 80 dentro del contenedor al puerto 8080 en tu máquina local, permitiéndote acceder al servidor web.
Una vez que el comando se ejecute correctamente, abre un navegador y visita http://localhost:8080
Accediendo al servidor web en localhost:8080
Deberías ver la página de bienvenida predeterminada de Nginx, ¡confirmando que tu servidor web se está ejecutando dentro de un contenedor!
También verás un contenedor ejecutándose en tu Escritorio Docker:
Contenedor Nginx ejecutándose en el puerto 8080
Crear tu primera imagen Docker
Hasta ahora, hemos estado ejecutando imágenes preconstruidas desde Docker Hub. Pero, ¿y si necesitas un entorno personalizado adaptado a tu aplicación? Ahí es donde entra en juego la construcción de tu propia imagen Docker.
Crear una imagen Docker implica escribir un Dockerfile
, un script que automatiza la creación de imágenes. Esto garantiza la coherencia y la portabilidad en distintos entornos. Una vez construida una imagen, puede ejecutarse como contenedor para ejecutar aplicaciones en un entorno aislado.
En esta sección, aprenderemos los fundamentos para escribir un Dockerfile, crear una imagen personalizada y ejecutarla como contenedor.
Conceptos básicos de Dockerfile
Un Dockerfile
es un script que contiene una serie de instrucciones que definen cómo se construye una imagen Docker. Automatiza el proceso de creación de imágenes, garantizando la coherencia en todos los entornos. Cada instrucción de Dockerfile
crea una nueva capa en la imagen. Aquí tienes un desglose de un Dockerfile de ejemplo para una sencilla aplicación Python Flask:
# Base image containing Python runtime
FROM python:3.9
# Set the working directory inside the container
WORKDIR /app
# Copy the application files from the host to the container
COPY . /app
# Install the dependencies listed in requirements.txt
RUN pip install -r requirements.txt
# Define the command to run the Flask app when the container starts
CMD ["python", "app.py"]
En el comando anterior:
-v my-volume:/app/data
monta el almacenamientomy-volume
en el directorio/app/data
dentro del contenedor.- Cualquier dato almacenado en
/app/data
persistirá aunque el contenedor se detenga o se elimine.
Descomponiendo el Dockerfile anterior:
FROM python:3.9
: Especifica la imagen base con Python 3.9 preinstalado.WORKDIR /app
: Establece/app
como directorio de trabajo dentro del contenedor.COPY . /app
: Copia todos los archivos del directorio actual del anfitrión a/app
en el contenedor.RUN pip install -r requirements.txt
: Instala todas las dependencias necesarias dentro del contenedor.CMD ["python", "app.py"]
: Define el comando que se ejecutará cuando se inicie el contenedor.
Construir y ejecutar la imagen
Una vez definido el Dockerfile, puedes construir y ejecutar la imagen utilizando los siguientes comandos:
Paso 1: Construye la imagen
docker build -t my-flask-app .
El comando anterior:
- Utiliza el directorio actual (
.
) como contexto de construcción. - Lee el
Dockerfile
y ejecuta sus instrucciones. - Etiqueta (
-t
) la imagen resultante comomy-flask-app
.
Paso 2: Ejecuta la imagen como un contenedor
docker run -d -p 5000:5000 my-flask-app
El comando anterior:
- Ejecuta el contenedor en modo separado (
-d
). - Asigna el puerto 5000 dentro del contenedor al puerto 5000 en el host (
-p 5000:5000
).
Una vez en marcha, puedes acceder a la aplicación Flask navegando a http://localhost:5000
en un navegador.
Volúmenes Docker y Persistencia
Por defecto, los datos dentro de un contenedor Docker son temporales-una vez que el contenedor se detiene o se elimina, los datos desaparecen. Para persistir los datos a través de los reinicios del contenedor y compartirlos entre varios contenedores, Docker proporciona volúmenes, un mecanismo incorporado para gestionar el almacenamiento persistente de forma eficiente.
A diferencia del almacenamiento de datos dentro del sistema de archivos del contenedor, los volúmenes son gestionados por separado por Docker, lo que los hace más eficientes, flexibles y fáciles de respaldar.
En la siguiente sección, exploraremos cómo crear y utilizar volúmenes Docker para garantizar la persistencia de los datos en tus contenedores.
Crear y utilizar volúmenes Docker
Paso 1: Crear un volumen
Antes de utilizar un volumen, tenemos que crear uno. Ejecuta el siguiente comando:
docker volume create my-volume
Esto crea un volumen con nombre llamado my-volume
, que Docker gestionará independientemente de cualquier contenedor específico.Paso 2: Utiliza el volumen de un recipiente
Ahora, iniciemos un contenedor y montemos el volumen dentro de él:
docker run -d -v my-volume:/app/data my-app
En el comando anterior:
-v my-volume:/app/data
monta el almacenamientomy-volume
en el directorio/app/data
dentro del contenedor.- Cualquier dato almacenado en
/app/data
persistirá aunque el contenedor se detenga o se elimine.
Docker Compose para aplicaciones multicontenedor
Hasta ahora, hemos estado trabajando con aplicaciones de un solo contenedor, pero muchas aplicaciones del mundo real requieren que varios contenedores trabajen juntos. Por ejemplo, una aplicación web puede necesitar un servidor backend, una base de datos y una capa de almacenamiento en caché, cada uno de ellos ejecutándose en su propio contenedor. Gestionar estos contenedores manualmente con comandos separados de docker run
puede volverse tedioso rápidamente.
Ahí es donde entra Docker Compose.
¿Qué es Docker Compose?
Docker Compose es una herramienta que simplifica la gestión de aplicaciones multicontenedor. En lugar de ejecutar varios comandos docker run
, puedes definir toda una pila de aplicaciones utilizando un archivo docker-compose.yml
y desplegarla con un solo comando.
Escribir un archivo Docker Compose
Ahora, vamos a crear un ejemplo del mundo real: una sencilla aplicación Node.js que se conecta a una base de datos MongoDB. En lugar de gestionar los dos contenedores por separado, los definiremos en un archivo docker-compose.yml
.
Así es como definimos nuestra configuración multicontenedor en Docker Compose:
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- database
database:
image: mongo
volumes:
- db-data:/data/db
volumes:
db-data:
Desglosando el archivo anterior:
version: '3'
: Especifica la versión de Docker Compose.services:
: Define servicios individuales (contenedores).web:
: Define la aplicación web Node.js.database:
: Define el contenedor de la base de datos MongoDB.volumes:
: Crea un volumen con nombre (db-data
) para la persistencia de datos MongoDB.
Ejecutar aplicaciones multicontenedor
Una vez que el archivo docker-compose.yml
esté listo, podemos lanzar toda la pila de aplicaciones con un solo comando:
docker-compose up -d
El comando anterior inicia los contenedores web y de base de datos en modo separado (-d
).
Para detener todos los servicios, utiliza
docker-compose down
Esto detiene y elimina todos los contenedores, conservando los volúmenes y la configuración de red.
Conceptos básicos de las redes Docker
Hasta ahora, nos hemos centrado en la ejecución de contenedores y la gestión del almacenamiento, pero ¿qué ocurre cuando los contenedores necesitan comunicarse entre sí? En la mayoría de las aplicaciones del mundo real, los contenedores no funcionan de forma aislada: necesitan intercambiar datos, tanto si un servidor web habla con una base de datos como si los microservicios interactúan entre sí.
Docker proporciona una serie de opciones de red para adaptarse a diferentes casos de uso, desde redes internas aisladas hasta configuraciones accesibles desde el exterior.
¿Preparado para mejorar tus conocimientos sobre Docker? Inscríbete en Docker Intermedio para explorar las construcciones multietapa, las redes avanzadas, ¡y mucho más!
¿Qué es la red Docker?
La red Docker es una función integrada que permite a los contenedores comunicarse entre sí, ya sea en el mismo host o en varios hosts de un entorno distribuido. Proporciona opciones de aislamiento, segmentación y conectividad de red adecuadas para distintos escenarios de implantación.
Docker admite varios tipos de red, cada uno de los cuales sirve para diferentes casos de uso:
- Puente (por defecto): Los contenedores de un mismo host se comunican a través de una red virtual interna. Cada contenedor obtiene su dirección IP privada dentro de la red puente, y pueden comunicarse entre sí mediante nombres de contenedor.
- Ejemplo:
docker network create my-bridge-network
- Ideal para ejecutar varios contenedores en un único host que necesitan comunicarse de forma segura sin exponer servicios externamente.
- Anfitrión: Los contenedores comparten la pila de red del host y utilizan directamente la dirección IP y los puertos del host.
- Ejemplo:
docker run --network host nginx
- Útil cuando necesitas un alto rendimiento y no requieres aislamiento de red, como al ejecutar agentes de supervisión o aplicaciones de baja latencia.
- Superposición: Permite la comunicación de contenedores en distintos hosts creando una red distribuida.
- Ejemplo:
docker network create --driver overlay my-overlay-network
- Diseñado para despliegues orquestados como Docker Swarm, donde los servicios abarcan varios nodos.
- Macvlan: Asigna una dirección MAC única a cada contenedor, haciéndolo aparecer como un dispositivo físico en la red.
- Ejemplo:
docker network create -d macvlan --subnet=192.168.1.0/24 my-macvlan
- Se utiliza cuando los contenedores necesitan acceso directo a la red, como al integrar sistemas heredados o interactuar con redes físicas.
Ejecutar contenedores en redes personalizadas
Veamos cómo configurar y utilizar una red puente personalizada red puente personalizada para la comunicación entre contenedores.
Paso 1: Crear una red personalizada
Antes de ejecutar contenedores, primero tenemos que crear una red dedicada:
docker network create my-custom-network
Este comando crea una red aislada a la que pueden unirse los contenedores para la comunicación entre contenedores.
Paso 2: Ejecutar contenedores en la red
Ahora, vamos a iniciar dos contenedores y conectarlos a nuestra red recién creada:
docker run -d --network my-custom-network --name app1 my-app
docker run -d --network my-custom-network --name app2 my-app
- La bandera
--network my-custom-network
vincula el contenedor a la red especificada. - La bandera
--name
asigna un nombre único al contenedor, para que sea más fácil referenciarlo.
Ambos app11 and
app2 can now communicate using their container names. You can test the connectivity using the
ping` comando dentro de uno de los contenedores:
docker exec -it app1 ping app2
Si todo está configurado correctamente, verás una respuesta confirmando que los contenedores pueden comunicarse.
Inspeccionar redes Docker
Para verificar las configuraciones de red y los contenedores conectados, utiliza:
docker network inspect my-custom-network
Este comando proporciona detalles sobre la red, incluyendo rangos IP, contenedores conectados y configuraciones.
Exponer y publicar puertos
Cuando ejecutes contenedores que deban ser accesibles externamente, puedes exponer puertos específicos.
Por ejemplo, para ejecutar un servidor web Nginx y exponerlo en el puerto 8080 de tu máquina local, utiliza:
docker run -d -p 8080:80 nginx
Esto asigna el puerto 80 dentro del contenedor al puerto 8080 en el host, haciendo que el servicio sea accesible a través de http://localhost:8080.
Buenas prácticas para la creación de redes Docker
- Utiliza redes personalizadas: Evita utilizar la red puente por defecto en las implantaciones de producción para reducir los accesos involuntarios entre contenedores.
- Aprovecha el descubrimiento basado en DNS: En lugar de codificar direcciones IP, utiliza nombres de contenedor para permitir la detección dinámica de servicios.
- Restringe la exposición externa: Utiliza cortafuegos o políticas de red para controlar el acceso a los servicios.
- Supervisa el tráfico: Utiliza herramientas como
docker network inspect
, Wireshark o Prometheus para analizar el tráfico de red y detectar anomalías. - Optimizar las redes superpuestas: Si se despliega en una configuración distribuida, ajusta las redes superpuestas para reducir la latencia aprovechando las opciones de enrutamiento local del host.
Buenas prácticas de Docker y próximos pasos
Ahora que has aprendido los fundamentos de Docker, es hora de que mejores tus habilidades y adoptes las mejores prácticas que te ayudarán a crear aplicaciones en contenedores seguras, eficientes y fáciles de mantener.
Las siguientes buenas prácticas te ayudarán a agilizar tus flujos de trabajo con Docker y a evitar los errores más comunes.
- Utiliza imágenes base oficiales: Prefiere siempre imágenes base oficiales y bien mantenidas para garantizar la seguridad y la estabilidad. Las imágenes oficiales están optimizadas, se actualizan regularmente y es menos probable que contengan vulnerabilidades.
- Mantén las imágenes pequeñas: Reduce el tamaño de la imagen eligiendo imágenes base mínimas (por ejemplo,
python:3.9-slim
en lugar depython:3.9
). Elimina las dependencias y archivos innecesarios para optimizar el almacenamiento y los tiempos de extracción. - Utiliza construcciones multietapa: Optimiza los archivos Docker separando las dependencias de compilación y de ejecución. Las compilaciones multietapa garantizan que sólo se incluyan en la imagen final los artefactos necesarios, reduciendo el tamaño y la superficie de ataque.
- Etiqueta correctamente las imágenes: Utiliza siempre etiquetas versionadas (por ejemplo,
my-app:v1.0.0
) en lugar delatest
para evitar actualizaciones inesperadas al extraer imágenes. - Escanea las imágenes en busca de vulnerabilidades: Utiliza herramientas de análisis de seguridad como
docker scan
,Trivy
, oClair
para identificar y corregir las vulnerabilidades de seguridad de tus imágenes antes de desplegarlas. - Gestiona las variables de entorno de forma segura: Evita almacenar credenciales sensibles dentro de las imágenes. Utiliza secretos de Docker, variables de entorno o herramientas externas de gestión de secretos como AWS Secrets Manager o HashiCorp Vault.
- Utiliza archivos .dockerignore: Excluye los archivos innecesarios (por ejemplo,
.git, node_modules
,venv
) para reducir el tamaño del contexto de construcción y evitar la inclusión accidental de archivos sensibles en las imágenes. - Activa el registro y la supervisión: Utiliza herramientas como Prometheus, Grafana y Fluentd para los registros y la supervisión de los contenedores. Inspecciona los registros mediante
docker logs
y activa el registro estructurado para una mejor observabilidad.
Una vez que domines los fundamentos de Docker, hay muchos temas avanzados que explorar. He aquí algunas áreas que merece la pena explorar a continuación:
- Enjambre Docker y Kubernetes: Explora Docker Swarm (clúster integrado eng) y Kubernetes (orquestación de nivel empresarial con autoescalado y descubrimiento de servicios) para una orquestación de nivel de producción.
- Buenas prácticas de seguridad en contenedores: Para asegurar las aplicaciones en contenedores, sigue las directrices del CIS Docker Benchmark e implanta el Control de Acceso Basado en Funciones (RBAC).
- Canalizaciones CI/CD con Docker: Automatiza la creación de imágenes, los análisis de seguridad y los despliegues mediante GitHub Actions, GitLab CI o Jenkins.
- Desarrollo nativo en la nube: Aprovecha Docker con plataformas en la nube como AWS ECS, Azure Container Instances y Google Cloud Run para implantaciones escalables y gestionadas.
- Estrategias de persistencia de datos: Para una gestión óptima del almacenamiento, entiende las diferencias entre volúmenes Docker, montajes bind y tmpfs.
Conclusión
Docker ha revolucionado el modo en que los desarrolladores crean, envían y ejecutan aplicaciones, convirtiéndolo en una herramienta esencial para el desarrollo de software moderno.
En este tutorial, cubrimos:
- Qué es Docker y por qué es importante
- Cómo instalar y ejecutar tu primer contenedor
- Conceptos clave como imágenes, contenedores y redes
- Almacenamiento persistente con volúmenes Docker
- Aplicaciones multicontenedor con Docker Compose
- Mejores prácticas de seguridad, rendimiento y escalabilidad
¡Pero esto es sólo el principio! Si quieres profundizar tus conocimientos sobre Docker, puedes seguir un curso de Introducción a Docker para principiantes en . Para obtener conocimientos más profundos, puedes realizar un curso Intermedio de Docker que cubre las construcciones multietapa, las herramientas de red de Docker y Docker Compose. Por último, también puedes obtener la certificación Docker, ¡consulta la Guía completa de la certificación Docker (DCA) para 2025 si estás interesado!
Domina Docker y Kubernetes
Preguntas frecuentes
¿En qué se diferencia Docker de una máquina virtual (VM)?
Los contenedores Docker comparten el núcleo del sistema operativo anfitrión, lo que los hace más ligeros y rápidos, mientras que las máquinas virtuales (VM) requieren un sistema operativo invitado completo, lo que las hace más pesadas y lentas. Los contenedores son mejores para los microservicios y el escalado rápido, mientras que las máquinas virtuales son más adecuadas para ejecutar distintos entornos de SO en el mismo hardware.
¿Cuál es la diferencia entre Docker CE y Docker EE?
Docker Community Edition (CE) es la versión gratuita y de código abierto adecuada para desarrolladores individuales y pequeños proyectos. Docker Enterprise Edition (EE) es una versión de pago con funciones adicionales de seguridad, gestión y soporte, lo que la hace ideal para implantaciones empresariales a gran escala.
¿Puede funcionar Docker en Windows sin utilizar WSL 2?
Sí, Docker Desktop para Windows ofrece dos modos: Backend basado en WSL 2 (recomendado) y backend Hyper-V. El backend WSL 2 proporciona mejor rendimiento e integración con Windows, mientras que Hyper-V es una alternativa si WSL 2 no está disponible.
¿Qué son las imágenes Docker multiarco?
Las imágenes multiarquitectura permiten que una sola imagen Docker admita varias arquitecturas (por ejemplo, x86, ARM). Esto garantiza que la misma imagen pueda ejecutarse en diferentes plataformas de hardware sin modificaciones, lo que la hace útil para dispositivos IoT y entornos en la nube.
¿Cómo gestiona Docker la seguridad?
Docker mejora la seguridad mediante el aislamiento del espacio de nombres, los grupos de control (cgroups) y los perfiles seccomp. Además, las mejores prácticas incluyen ejecutar contenedores como usuarios no root, utilizar imágenes base mínimas, habilitar la confianza de contenido para la verificación de imágenes y escanear imágenes en busca de vulnerabilidades utilizando herramientas como docker scan
o Trivy
.
¡Aprende más sobre Docker y Kubernetes con estos cursos!
programa
Containerization and Virtualization
curso
Containerization and Virtualization Concepts
tutorial
Cómo instalar y configurar MySQL en Docker
tutorial
Desarrollo de backend en Python: Guía completa para principiantes

Oluseye Jeremiah
26 min
tutorial
Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Anneleen Rummens
20 min
tutorial
Tutorial de GitHub y Git para principiantes
tutorial
Tutorial de Git Revert y Git Reset para principiantes
tutorial