Saltar al contenido principal

Docker para principiantes: Guía práctica de contenedores

Este tutorial para principiantes cubre los aspectos esenciales de la contenedorización, ayudándote a construir, ejecutar y gestionar contenedores con ejemplos prácticos.
Actualizado 24 feb 2025  · 25 min de lectura

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 de Docker

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

  1. Descargar Docker Desktop para Windows.

Descargar el instalador de Docker Desktop para Windows

Descargar el instalador de Docker Desktop para Windows

  1. Ejecuta el instalador y sigue las instrucciones de instalación.

Instalación de Docker Desktop para Windows

Instalación de Docker Desktop para Windows

  1. Activa la integración WSL 2 si se te pide.
  2. Verifica la instalación ejecutando docker –version en PowerShell.

Comprobación de la versión de Docker tras la instalación mediante 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

Iniciar la aplicación de escritorio Docker en Windows

Instalar Docker en macOS

  1. Descarga Docker Desktop para Mac.

Descargar el instalador de Docker Desktop para Mac

Descargar el instalador de Docker Desktop para Mac

  1. Abre el archivo .dmg descargado y arrastra Docker a la carpeta Aplicaciones.
  2. Inicia Docker y completa la configuración.
  3. Verifica la instalación utilizando docker –version en el terminal.

Instalar Docker en Linux (Ubuntu)

  1. Actualiza las listas de paquetes: sudo apt update 
  2. Instala las dependencias: sudo apt install apt-transport-https ca-certificates curl software-properties-common 
  3. Añade la clave GPG oficial de Docker: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
  4. Añade el repositorio de Docker: sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
  5. Instala Docker: sudo apt install docker-ce  
  6. Verifica la instalación: docker –version

Domina Docker y Kubernetes

Aprende el poder de Docker y Kubernetes con una pista interactiva para construir y desplegar aplicaciones en entornos modernos.
Empezar pista gratis

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:

  1. Crear un contenedor: docker create o docker run
  2. Poner en marcha un contenedor: docker start
  3. Detener un contenedor: docker stop
  4. Reiniciar un contenedor: docker restart
  5. 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

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

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

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 almacenamiento my-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 como my-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 almacenamiento my-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 de python: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 de latest 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, o Clair 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

Aprende el poder de Docker y Kubernetes con una pista interactiva para construir y desplegar aplicaciones en entornos modernos.

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.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Científico de Datos, Fundador y Creador de PyCaret

Temas

¡Aprende más sobre Docker y Kubernetes con estos cursos!

curso

Introduction to Docker

4 hr
25.7K
Gain an introduction to Docker and discover its importance in the data professional’s toolkit. Learn about Docker containers, images, and more.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

tutorial

Cómo instalar y configurar MySQL en Docker

Aprende a instalar y configurar la base de datos MySQL dentro de contenedores Docker. El tutorial incluye conceptos como conectarse a servidores MySQL, ejecutar clientes MySQL para conectarse a contenedores, etc.
Bex Tuychiev's photo

Bex Tuychiev

12 min

tutorial

Desarrollo de backend en Python: Guía completa para principiantes

Esta completa guía te enseña los fundamentos del desarrollo backend en Python. Aprende conceptos básicos, marcos de trabajo y buenas prácticas para empezar a crear aplicaciones web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

26 min

tutorial

Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Esta guía te enseña a configurar y gestionar las Cuentas de Almacenamiento de Azure, paso a paso. También explora opciones avanzadas de configuración para un rendimiento óptimo y una optimización de costes.
Anneleen Rummens's photo

Anneleen Rummens

20 min

tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

17 min

tutorial

Tutorial de Git Revert y Git Reset para principiantes

Una guía tutorial para principiantes que muestra cómo utilizar los comandos Git Revert y Reset.
Zoumana Keita 's photo

Zoumana Keita

10 min

tutorial

Cómo escribir un Bash Script: Un sencillo tutorial de Bash Scripting

Descubre los fundamentos de las secuencias de comandos bash y aprende a escribir una secuencia de comandos bash.
Kurtis Pykes 's photo

Kurtis Pykes

5 min

Ver másVer más