Configuración inicial avanzada de Docker

configuracion-inicial-avanzada-de-docker
configuracion-inicial-avanzada-de-docker

La configuración inicial avanzada de Docker empieza cuando Docker ya funciona y necesitas adaptar el daemon a un entorno más serio: almacenamiento, logs, proxy, DNS, seguridad del socket o comportamiento del servicio.

Esta no es la primera lección que debes tocar después de instalar Docker. Úsala cuando ya pasaste por la configuración inicial recomendada y sabes verificar contenedores básicos. Aquí el objetivo es entender qué cambiar, por qué hacerlo y cuándo no tocar nada.

👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.

🐳 Si quieres aprender más de Docker, visita el curso de Docker gratis.

Antes de aplicar configuración avanzada

Trabaja con copia de seguridad y ventana de mantenimiento si el host ya ejecuta contenedores importantes. Algunos cambios reinician Docker y pueden detener servicios.

  • Haber comprobado Docker con docker version, docker ps y un contenedor de prueba.
  • Saber si el equipo es laboratorio, servidor compartido o entorno de producción.
  • Tener claro dónde están tus volúmenes y qué contenedores no puedes interrumpir.
  • Guardar una copia del archivo daemon JSON antes de editarlo.
sudo mkdir -p /etc/docker
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak 2>/dev/null || true
sudo docker ps

Advertencia: reiniciar Docker puede afectar contenedores activos. En producción, planifica el cambio y revisa dependencias antes de aplicar nada.

Configuración inicial avanzada de Docker

El archivo daemon JSON permite definir ajustes del motor Docker. No necesitas tocarlo para aprender Docker, pero sí puede ser útil cuando quieres controlar logs, almacenamiento o integración con redes corporativas.

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "features": {
    "buildkit": true
  }
}

Este ejemplo mantiene una configuración prudente: limita el crecimiento de logs y deja BuildKit activo para builds modernos. No incluye proxies, mirrors ni cambios de red porque dependen mucho del entorno.

sudo docker info --format "{{json .LoggingDriver}}"
sudo systemctl restart docker
docker info

Después de reiniciar, docker info debe responder. Si falla, restaura la copia de seguridad y valida la sintaxis JSON antes de insistir.

Logs, almacenamiento y BuildKit

Tres ajustes suelen aparecer pronto en entornos reales: evitar logs infinitos, decidir dónde vive el almacenamiento de Docker y activar builds más eficientes.

AjusteCuándo usarloRiesgo
Rotación de logsCuando contenedores verbosos llenan disco.Perder histórico local antiguo si lo configuras muy bajo.
data-rootCuando /var/lib/docker no tiene espacio suficiente.Mover datos mal puede dejar contenedores inaccesibles.
BuildKitCuando construyes imágenes frecuentemente.Normalmente bajo; puede cambiar salida y caché de builds.

No cambies data-root como reflejo automático. Primero mide espacio, identifica volúmenes y planifica parada. Para limpieza puntual, usa lecciones específicas de imágenes, contenedores y volúmenes.

Proxy, DNS y registros corporativos

En empresas o redes restringidas, Docker puede necesitar proxy, DNS o mirrors de registro. Estos ajustes no son universales: copiar una configuración de internet sin entender tu red suele empeorar el diagnóstico.

  • Si docker pull falla por red, distingue entre DNS, proxy, firewall y credenciales del registry.
  • Si usas proxy, documenta variables y unidades systemd implicadas.
  • Si usas registry privado, revisa certificados y autenticación antes de culpar al contenedor.
  • Si el problema es resolución entre contenedores, eso pertenece más a redes Docker que a configuración inicial.

Para redes de contenedores, usa la lección redes en Docker. Para registries y CI/CD, deja el ajuste dentro del módulo correspondiente.

Seguridad del socket y acceso remoto

El socket de Docker controla el daemon. Quien puede usarlo tiene capacidad práctica para crear contenedores privilegiados, montar rutas del host y afectar el sistema. Por eso no conviene exponerlo ni montarlo sin entender el riesgo.

  • No expongas el socket Docker por TCP sin TLS y control de acceso.
  • No montes /var/run/docker.sock en contenedores de terceros sin revisión.
  • No uses –privileged para resolver problemas genéricos.
  • Revisa usuarios del grupo docker en servidores compartidos.

Si este punto te afecta, continúa con cómo proteger el socket de Docker antes de usar automatizaciones o paneles que controlen Docker.

Validación y rollback

Toda configuración avanzada debe terminar con una validación pequeña y una ruta de vuelta. Si Docker no arranca después del cambio, tu prioridad es recuperar el daemon, no seguir editando a ciegas.

sudo dockerd --validate --config-file /etc/docker/daemon.json
sudo systemctl restart docker
docker version
docker run --rm hello-world

Si la validación falla, restaura el backup:

sudo cp /etc/docker/daemon.json.bak /etc/docker/daemon.json
sudo systemctl restart docker
docker version

Estos comandos tienen impacto real sobre el servicio. Úsalos en laboratorio o con una ventana de mantenimiento si el host ya ejecuta cargas importantes.

Lecciones relacionadas del curso Docker

Documentación oficial y recursos

La configuración inicial avanzada de Docker no consiste en activar opciones por moda, sino en cambiar lo mínimo necesario con backup, validación y rollback.

Si todavía estás aprendiendo, quédate primero con la configuración recomendada básica. Cuando el entorno crezca, vuelve a esta lección para ajustar el daemon con criterio.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *