Docker en Raspberry Pi 5: servidor casero que aguanta 2026
Docker en Raspberry Pi 5: servidor casero que aguanta 2026
La Raspberry Pi 5 con 8 GB de RAM es la combinación más popular para un servidor casero en 2026: bajo consumo (~5 W), silencio total, y potencia suficiente para correr 5-10 contenedores 24/7. Esta guía te lleva de cero a un stack Docker funcional con portainer, watchtower y tus primeros servicios.
TL;DR — Lo que vas a tener al final
- Tiempo de setup: 1-2 horas para el primer multi-stage, 30 min para los siguientes.
- Requisitos: Docker 24+ con BuildKit habilitado.
- Resultado: Imágenes 80-95% más pequeñas, builds 50-70% más rápidos.
- Troubleshooting: DOCKER_BUILDKIT=1, dive para analizar layers, troubleshooting sin shell con stage debug.
¿Por qué Pi 5 y no Pi 4 o una mini PC?
La Pi 5 trae CPU Cortex-A76 a 2.4 GHz (casi 3x más rápida que la Pi 4 en single-core), conectividad PCIe real y mejor soporte de USB 3.0. Para Docker con varias imágenes ARM64, la diferencia es notable. La mini PC x86 sigue siendo mejor para workloads pesados (compilación, bases de datos grandes, IA), pero la Pi 5 gana en consumo, ruido y costo.
Instalar Raspberry Pi OS o Ubuntu Server
Recomendación 2026: Raspberry Pi OS Bookworm 64-bit (basado en Debian 12). Ubuntu 24.04 LTS también funciona pero consume más RAM. Para headless server, usa la imagen Lite:
1. Descarga Raspberry Pi Imager.
2. Elige “Raspberry Pi OS Lite (64-bit)”.
3. Preconfigura SSH, Wi-Fi y contraseña desde el menú avanzado.
4. Flashea a la SD o, mejor, a un SSD USB 3.0 conectado al puerto PCIe (la Pi 5 bootea desde USB oficialmente).
Tras el primer boot, actualizá:
apt full-upgrade es la versión “completa” de upgrade: además de actualizar paquetes, puede instalar nuevas dependencias o remover paquetes obsoletos si hace falta. rpi-update actualiza el firmware de la Pi (bootloader, kernel específico de Raspberry Pi). Es opcional y a veces introduce inestabilidad; solo lo corres si necesitas un feature del firmware muy nuevo o si la doc oficial lo recomienda.
sudo apt update && sudo apt full-upgrade -y
sudo rpi-update # opcional, último firmware
Si después de rpi-update la Pi no bootea (queda la pantalla en negro o en el splash rainbow), el firmware rompió algo. Solución: booteá desde la SD anterior, montá la partición de boot y borrá el archivo *.upd que dejó rpi-update para forzar el rollback. apt full-upgrade en cambio es seguro: si algo falla, sudo apt --fix-broken install lo resuelve el 99% de las veces.
Instalar Docker
Docker tiene soporte oficial para ARM64. El método recomendado en 2026:
El script de get.docker.com detecta tu distribución y arquitectura (ARM64 en Pi 5), agrega el repo oficial de Docker Inc., instala el engine y deja todo listo. La línea del usermod -aG docker agrega tu usuario al grupo docker para que puedas correr docker sin sudo. newgrp docker aplica el cambio de grupo en la sesión actual sin necesidad de cerrar sesión.
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version
docker run hello-world
Si el segundo comando falla con permisos, reiniciá sesión. hello-world debe correr y mostrar un mensaje de éxito.
Si hello-world falla con Cannot connect to the Docker daemon, el servicio no está corriendo: sudo systemctl enable --now docker. Si falla con permission denied sobre /var/run/docker.sock y reiniciar sesión no lo arregla, probablemente estás usando una cuenta que no es la del usermod ($USER se expande al usuario que ejecuta, no al que quieres agregar). Confirmá con id $USER que estés logueado con el usuario correcto. verifica que la arquitectura sea ARM64 con dpkg --print-architecture (debería decir arm64); si dice armhf, bajaste la imagen equivocada de Raspberry Pi OS.
Persistencia: el detalle que olvida la mayoría
Una SD tiene vida limitada con escrituras intensivas. Docker + logs + bases de datos + system journals queman la SD en meses. Soluciones:
- SSD USB 3.0 (recomendado). Bootea desde el SSD, todo el sistema corre ahí.
- Reducir writes: configura Docker para usar el driver
overlay2(default) y limita logs con--log-opt max-size=10m --log-opt max-file=3. - Mover
/var/lib/dockeral SSD si booteas desde SD: añade una línea en/etc/fstabmontando el SSD y symlinkea.
Para un SSD externo barato que funciona bien con Pi 5: cualquier Kingston A400, Crucial BX500 o Samsung T7 en un case USB 3.0. No necesitas NVMe especial, el bus es USB.
Tu primer stack con Docker Compose
Creá una carpeta para tus stacks:
Tener todos los docker-compose.yml (o archivos por servicio) en una carpeta dedicada te permite versionar todo el setup con Git y reproducirlo en otra máquina con git clone && docker compose up -d. El cd después es para que docker compose encuentre el archivo cuando lo invoques.
mkdir -p ~/stacks && cd ~/stacks
Ejemplo: portainer.yml (gestión web de Docker):
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Levantá el stack:
docker compose -f archivo.yml up -d lee el compose, baja las imágenes que falten, crea los volúmenes declarados y arranca los contenedores en segundo plano (-d = detached). El -f permite especificar el archivo cuando no se llama docker-compose.yml o tienes varios stacks en la misma carpeta.
docker compose -f portainer.yml up -d
Abrí https:// desde otro dispositivo. La primera vez te pide crear usuario admin.
Si el puerto 9443 no responde desde otro dispositivo pero sí localmente en la Pi, el firewall del host está bloqueando conexiones externas al puerto: sudo ufw allow 9443/tcp. Si docker compose up se queda colgado en pulling layer o tira timeouts, es problema de red del host con el registry de Docker — prueba docker pull portainer/portainer-ce:latest primero para descartar. Portainer usa TLS en 9443 con un cert self-signed por default; tu navegador va a tirar warning la primera vez, acéptalo y creá el usuario admin dentro de los 5 minutos (después el setup expira).
Watchtower: actualizaciones automáticas
Si quieres que tus contenedores se actualicen solos (con cuidado):
services:
watchtower:
image: containrrr/watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_POLL_INTERVAL=86400 # revisa una vez al día
command: --label-enable # solo actualiza contenedores con label enable
Para que un contenedor se actualice automáticamente: agrégale labels: com.centurylinklabs.watchtower.enable=true en su compose. Lo que no tenga la label, watchtower lo deja en paz. Recomendado para servicios no críticos (Pi-hole, Homepage, Uptime Kuma). NO para bases de datos con estado (Postgres, MariaDB) ni para Nextcloud con muchos gigas.
Servicios típicos para un homelab con Pi 5
Algunos contenedores ARM64 probados en 2026:
- Pi-hole o AdGuard Home: bloqueador de DNS para toda tu LAN. Imagen oficial ARM64.
- Homepage: dashboard para tus servicios.
ghcr.io/gethomepage/homepage:latest. - Uptime Kuma: monitor de uptime con notificaciones. Soporta ARM64.
- Nextcloud AIO: nube personal. Funciona en Pi 5 con 8 GB, pero consume RAM.
- Jellyfin: servidor de medios. Transcodificación HW limitada, mejor directo play.
- Paperless-ngx: gestor documental. Va fluido con OCR básico.
- Mealie / Tandoor: recetas. Livianos.
- Gitea: Git privado. Funciona perfecto en ARM64.
Para todos verifica que la imagen tenga tag arm64 o latest con manifest multi-arquitectura. Docker pull descarga la correcta automáticamente en Pi 5.
Rendimiento real (sin benchmarks inventados)
Lo que importa saber sin entrar en cifras:
- 5-7 contenedores pequeños (Pi-hole, Homepage, Uptime Kuma, Gitea, Mealie, Paperless, Watchtower) corren cómodos en Pi 5 8 GB.
- 1 contenedor pesado (Nextcloud con 10+ usuarios, Jellyfin transcodificando) satura la Pi rápido. Mueve esos a mini PC x86.
- Bases de datos (Postgres, MariaDB) en SD son dolorosas. SSD obligatorio.
- CPU Cortex-A76 single-core es comparable a un Intel N100 en tareas single-threaded. Multi-threaded, el N100 gana 2-3x.
Networking: fija la IP de la Pi
Para que el resto de tu red encuentre los servicios, IP estática en la Pi:
sudo nmtui
# o edita /etc/NetworkManager/system-connections/wifi.nmconnection:
[connection]
type=wifi
id=preconfigured
[ipv4]
method=manual
addresses1=192.168.1.50/24
gateway=192.168.1.1
dns=1.1.1.1;8.8.8.8;
sudo nmcli connection reload
sudo nmcli connection up preconfigured
O usa una reserva DHCP en tu router. Más limpio: instala avahi-daemon para que la Pi sea accesible como raspberrypi.local.
Backups del stack
El /var/lib/docker no se respalda con rsync directamente porque las capas overlay2 están en uso. Opciones:
- Reinicia Docker (
sudo systemctl stop docker) y luego respalda. Tiene downtime de minutos. - Usa
docker run --rm --volumes-from. Funciona contenedor por contenedor.-v $(pwd):/backup busybox tar cvf /backup/backup.tar /data - Para configs simples, basta con respaldar tus
docker-compose.ymly/var/lib/docker/volumes/por nombre.
Conclusión
La Raspberry Pi 5 con Docker + Portainer + Watchtower es la combinación más eficiente en 2026 para un homelab de servicios personales. Bajo consumo, silencioso, y con el ecosistema ARM64 ya maduro, no hay razón para no intentarlo.
FAQ
¿Necesito la versión de 8 GB o sirve la de 4 GB?
Para 5+ contenedores sí o sí 8 GB. La de 4 GB se queda corta cuando levantas Nextcloud o bases de datos.
¿Se puede usar Traefik o Caddy como reverse proxy?
Sí, ambos tienen imágenes ARM64. Caddy es más simple para empezar.
¿Y K3s o k0s para Kubernetes?
K3s funciona en Pi 5 pero es overkill para homelab. Compose te da el 90% del beneficio sin la complejidad.
¿Vale la pena usar Podman en lugar de Docker?
Si prefieres daemonless y rootless, sí. Pero la compatibilidad de imágenes y tooling con Docker sigue siendo mayor.
Fuentes
- https://docs.docker.com/engine/install/debian/
- https://www.raspberrypi.com/documentation/computers/os.html
- https://github.com/pi-hole/docker-pi-hole
- https://docs.portainer.io/
- https://containrrr.dev/watchtower/
Preguntas frecuentes
¿Por qué Docker en Raspberry Pi 5: servidor casero que aguanta 2026 es relevante para sysadmins Linux?
Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.
¿Qué necesito para empezar con Docker en Raspberry Pi 5:?
Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.
¿Cuáles son los errores más comunes con Docker en Raspberry Pi 5:?
Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.
¿Cuándo usar Docker en Raspberry Pi 5: y cuándo una alternativa?
Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.
¿Cómo migro desde una configuración previa a Docker en Raspberry Pi 5:?
Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.
Lee también
- Guía Fedora 44: Novedades, Instalación y Upgrade para Sysadmins Linux
- Configura VLANs en Linux con nmcli: Guía paso a paso para sysadmins
- Protege tu SSH: Guía esencial para configurar Fail2ban en Linux
- Guía Definitiva: Configura Kubernetes con kubeadm en Ubuntu para Sysadmins Linux
- Configura Prometheus y Grafana: Guía DevOps para SysAdmins Linux

Pingback: k3s para homelab: Kubernetes ligero en 2026 (guía completa)
Pingback: Raspberry Pi 5 vs Pi 4: ¿vale la pena el upgrade en 2026?