Saltar a contenido

ADR-026: Docker como runtime de contenedores

Estado: aceptado

Contexto

SmallCountry ejecuta servicios dentro de contenedores LXC en Proxmox (ADR-018). Dentro de esos LXC, se necesitaba un runtime para desplegar aplicaciones. Las opciones evaluadas fueron Docker, Podman, y contenedores OCI nativos de Proxmox.

Decisión

Docker como runtime de contenedores dentro de los LXC de Proxmox. Cada LXC ejecuta Docker para orquestar los servicios de aplicación, usando docker-compose para la configuración declarativa.

Alternativas consideradas

Opción Por qué se descartó
Podman Menor madurez del ecosistema en el momento de la decisión. Compatibilidad con docker-compose limitada.
OCI nativos Proxmox Tecnología inmadura en Proxmox. Falta de tooling y documentación. Preparado para adoptar cuando madure.
Systemd-nspawn Curva de aprendizaje adicional. Ecosistema más reducido.

Consecuencias

  • ✅ Ecosistema masivo de imágenes y tooling
  • ✅ docker-compose como configuración declarativa versionable
  • ✅ Portainer para gestión visual de contenedores
  • ✅ CI puede construir y publicar imágenes en el registro OCI de Forgejo
  • ❌ Docker Inc. como dependencia corporativa (mitigado: imágenes cacheadas en registro local)
  • ❌ Demonio adicional con consumo de recursos (mitigado: límites duros por LXC via ADR-018)