2. Instalación y configuración de Docker

Instalación de Docker

La forma más sencilla de empezar con Docker en un entorno de desarrollo es mediante Docker Desktop, una aplicación que incluye el motor de Docker (Engine), la línea de comandos (CLI), Docker Compose y otras herramientas en un solo paquete. Está disponible para Windows y macOS.

Windows

  • Requisitos: Windows 10 u 11 de 64 bits (Home, Pro, Enterprise o Education). Es fundamental tener activada la virtualización en la BIOS y el Subsistema de Windows para Linux 2 (WSL 2).
  • Instalación:
    1. Descarga el instalador desde Docker Hub.
    2. Ejecuta el instalador. Asegúrate de que la opción "Use WSL 2 instead of Hyper-V" esté marcada (es la recomendada).
    3. Sigue las instrucciones y reinicia el sistema si es necesario.
    Instalador de Docker Desktop en Windows
    Asistente de instalación de Docker Desktop

macOS

  • Requisitos: macOS 11 (Big Sur) o superior. Para Macs con chip Apple Silicon (M1, M2, etc.), Docker Desktop utiliza el framework de virtualización de Apple. Para Macs con Intel, utiliza HyperKit.
  • Instalación:
    1. Descarga el instalador (.dmg) desde Docker Hub según el chip de tu Mac (Apple o Intel).
    2. Abre el archivo `.dmg` y arrastra el icono de Docker a la carpeta de Aplicaciones.
    3. Inicia Docker desde la carpeta de Aplicaciones.

Linux

En Linux, lo más común es instalar Docker Engine directamente, aunque también existe Docker Desktop para Linux.

  • Requisitos: Una distribución de 64 bits como Ubuntu, Debian, Fedora o CentOS.
  • Instalación (ejemplo en Ubuntu):
    1. Actualiza los paquetes existentes:
      sudo apt-get update
    2. Instala los paquetes necesarios para permitir a `apt` usar un repositorio sobre HTTPS:
      sudo apt-get install ca-certificates curl gnupg
    3. Añade la clave GPG oficial de Docker:
      sudo install -m 0755 -d /etc/apt/keyrings
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      sudo chmod a+r /etc/apt/keyrings/docker.gpg
    4. Configura el repositorio de Docker:
      echo \
        "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
        $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
        sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    5. Instala Docker Engine:
      sudo apt-get update
      sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    6. (Opcional pero recomendado) Añade tu usuario al grupo `docker` para ejecutar comandos sin `sudo`:
      sudo usermod -aG docker $USER
      Debes cerrar sesión y volver a iniciarla para que este cambio surta efecto.

    Para otras distribuciones, consulta la guía oficial de instalación.

Primeros comandos de verificación

Una vez instalado, abre una terminal o PowerShell y ejecuta los siguientes comandos para asegurarte de que todo funciona correctamente.

docker version

Muestra la versión del cliente (CLI) y del servidor (Engine). Es útil para confirmar que ambos componentes están instalados y comunicándose.

docker version

Verás una salida detallada con las versiones del cliente y del servidor.

resultado del comando docker info

docker info

Proporciona información detallada sobre la instalación de Docker, como el número de contenedores e imágenes, el sistema operativo, la memoria total, etc.

docker info

docker run hello-world

Este es el comando por excelencia para verificar que Docker funciona. Ejecuta un contenedor a partir de la imagen `hello-world`.

docker run hello-world

Si todo va bien, Docker hará lo siguiente:

  1. Buscará la imagen `hello-world` localmente.
  2. Al no encontrarla, la descargará automáticamente desde Docker Hub.
  3. Creará un nuevo contenedor a partir de esa imagen.
  4. Ejecutará el contenedor, que imprimirá un mensaje de bienvenida.
  5. El contenedor se detendrá.

La salida debería ser un mensaje que empieza con "Hello from Docker!".

salida del comando hello-world

Configuración de Recursos en Docker Desktop

Una de las ventajas de Docker Desktop es que permite controlar cuántos recursos de tu sistema puede utilizar. La forma de hacerlo varía según tu sistema operativo, especialmente con las versiones más recientes.

Configuración en Windows (con WSL 2)

Con la configuración moderna y recomendada, Docker Desktop para Windows utiliza el Subsistema de Windows para Linux 2 (WSL 2). En este modo, Windows gestiona dinámicamente la asignación de CPU y memoria.

Para establecer límites máximos, debes crear o editar un archivo llamado .wslconfig en tu carpeta de perfil de usuario (C:\Users\<TuUsuario>\.wslconfig). Esto controla los recursos para todas las distribuciones de WSL 2, no solo para Docker.

Un ejemplo de configuración en .wslconfig:

[wsl2]
memory=4GB   # Limita la memoria MÁXIMA de WSL 2 a 4GB
processors=2 # Limita a 2 el número MÁXIMO de procesadores
swap=2GB     # Asigna 2GB de espacio de intercambio (swap)

Después de guardar los cambios en este archivo, debes reiniciar Docker Desktop para que se apliquen.

Configuración en macOS

En macOS, la configuración es más directa. Ve a Settings > Resources y encontrarás controles deslizantes para ajustar:

  • CPUs: Define el número máximo de núcleos de CPU.
  • Memory: Asigna la cantidad de memoria RAM.
  • Disk image size: Establece el tamaño del disco virtual donde se almacenan imágenes y contenedores.

Modo de Ahorro de Recursos (Resource Saver)

Las versiones recientes de Docker Desktop incluyen un "Resource Saver mode". Esta función reduce drásticamente el consumo de CPU y memoria cuando Docker está inactivo (sin contenedores en ejecución). La máquina virtual de Docker se detiene automáticamente tras un periodo de inactividad, liberando recursos. Puedes activarlo y configurarlo en Settings > Resources.

Es clave encontrar un buen equilibrio: asigna suficientes recursos para que tus contenedores funcionen bien, pero no tantos como para ralentizar tu sistema.