Presentación de Docker
Docker es un motor de contenedores: empaqueta una aplicación y sus dependencias en una imagen y la ejecuta de forma aislada sobre el kernel del host. Los desarrolladores lo usan para tener el mismo entorno en local y en producción. Los equipos pequeños lo aprovechan para alojar varios servicios en una sola máquina sin que sus dependencias choquen entre sí.
Al entregarte el servidor, tu VPS Linux (Debian 12, Debian 13, Ubuntu 22.04 o 24.04, y también Ubuntu 20.04 con las reservas que se indican más abajo) incluye Docker Engine instalado desde el repositorio apt oficial de Docker. Los paquetes docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin y docker-compose-plugin están instalados, y los servicios docker y containerd quedan activados en el arranque.
La huella de la clave de firma del repositorio se verifica antes de instalar. Al final de la receta se lanza un contenedor hello-world para confirmar que el demonio responde. A partir de ahí el servidor es tuyo: no se añade ningún usuario al grupo docker por defecto y no se despliega ninguna aplicación por ti.
Lo que puede hacer con Docker
Repositorio apt oficial de Docker
Los paquetes proceden de download.docker.com, con una clave de firma cuya huella se comprueba. Las actualizaciones se gestionan con apt, igual que el resto del sistema.
Compose y Buildx incluidos
El plugin de Compose se usa con
docker compose(sin guion) y Buildx sirve para construir tus imágenes. Puedes desplegar un stack con varios servicios desde la primera conexión.Rotación de logs preconfigurada
Si
/etc/docker/daemon.jsonno existe, la receta lo escribe con el driverjson-file, 10 MB por archivo y 3 archivos conservados. Los logs de los contenedores no llenan el disco en silencio.Paquetes en conflicto eliminados
Los paquetes no oficiales como
docker.io,podman-docker,containerdoruncse eliminan antes de instalar. Así se evitan las mezclas de versiones que hacen fallar el demonio.Acceso equivalente a root controlado
No se añade ninguna cuenta al grupo
docker, que equivale a tener acceso root. Tú decides quién recibe ese privilegio.Registro de instalación legible
Cada paso queda registrado en
/var/log/docker-install.log, y el archivo/var/lib/docker-install.doneconfirma que la receta llegó hasta el final.
Empezar con Docker
Del pedido a la puesta en producción en pocos minutos.
- 1
Pide el VPS con Docker marcado
Elige un VPS Linux en París o Fráncfort, selecciona Debian 12, Debian 13, Ubuntu 22.04 o 24.04 y marca Docker en la pestaña «Aplicaciones» del formulario de pedido.
- 2
Conéctate y comprueba la instalación
Cuando recibas el servidor, conéctate por SSH con los accesos que te enviamos. La instalación se ejecuta en el primer arranque: si el archivo marcador aún no existe, espera un poco y sigue el registro.
Bashssh USER@SERVER_IP cat /var/lib/docker-install.done tail -n 20 /var/log/docker-install.log - 3
Lanza tu primer contenedor
Comprueba las versiones y arranca un servidor web de prueba. El puerto se publica solo en 127.0.0.1, así que no queda expuesto a Internet mientras pruebas.
Bashdocker --version && docker compose version docker run -d --name web -p 127.0.0.1:8080:80 nginx curl -I http://127.0.0.1:8080 - 4
Protege el servidor antes de producción
Pon un reverse proxy (Caddy, Traefik o Nginx) delante de tus servicios para gestionar YOUR_DOMAIN con HTTPS y publica en Internet solo los puertos 80 y 443. Mantén el resto en 127.0.0.1, porque los puertos publicados por Docker se saltan ufw. Por último, haz copias de seguridad de tus volúmenes y de tus archivos compose.
Bashdocker volume ls docker compose up -d
Casos de uso de Docker
Alojar varios servicios aislados
Una base de datos PostgreSQL, una aplicación web y una herramienta de monitorización se ejecutan cada una en su contenedor, descritas en un único
compose.yaml. Puedes actualizarlas o reiniciarlas por separado.Desplegar una aplicación autoalojada
Muchos proyectos de código abierto (n8n, Nextcloud, Gitea, Uptime Kuma...) publican una imagen de Docker y un ejemplo de Compose. El VPS está listo para recibirlos sin preparación previa.
Construir y probar imágenes
Con Buildx construyes tus imágenes en una máquina remota dedicada, sin cargar tu equipo de trabajo. Resulta útil para una cadena de CI ligera o para pruebas de integración.
Reproducir producción en preproducción
Un segundo VPS con la misma versión de Docker y los mismos archivos Compose te da un entorno de pruebas muy parecido al de producción, con poco esfuerzo de administración.
Preguntas frecuentes sobre Docker
La receta instala docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin y docker-compose-plugin desde el repositorio apt oficial de Docker. Los servicios docker y containerd quedan activados en el arranque. Con Compose v2 el comando es docker compose, no docker-compose.
Más sobre Docker
Cortafuegos y puertos publicados
Es la trampa más habitual. Cuando publicas un puerto con -p 8080:80, Docker escribe sus propias reglas de iptables y el tráfico pasa antes que las de ufw o firewalld. Un ufw deny 8080 no impide nada.
Hay dos enfoques fiables: enlazar el puerto a la interfaz local (-p 127.0.0.1:8080:80) y exponer el servicio mediante un reverse proxy, o filtrar en la cadena DOCKER-USER, que Docker consulta antes de sus propias reglas. El primero es más sencillo y basta en la mayoría de los casos.
Grupo docker y sudo
Pertenecer al grupo docker equivale a tener permisos de root en la máquina: un contenedor puede montar el sistema de archivos del host. La receta no añade a nadie a ese grupo. Si quieres trabajar con una cuenta sin privilegios, añádela tú mismo y vuelve a iniciar sesión.
Bashsudo usermod -aG docker USER
Logs de contenedores
El archivo /etc/docker/daemon.json que se escribe en la entrega limita cada contenedor a 3 archivos de 10 MB. Solo se crea si no existía ya. Para cambiar estos valores, edítalo y reinicia el demonio. Los nuevos ajustes solo se aplican a los contenedores creados después del reinicio.
Bashsudo systemctl restart docker
Actualizaciones
El repositorio de Docker está declarado en /etc/apt/sources.list.d/docker.sources, así que las nuevas versiones llegan con las actualizaciones habituales de apt. Prográmalas para un momento en el que se pueda reiniciar el demonio, porque puede interrumpir tus contenedores si la opción live-restore no está activada.
Bashsudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io
Ubuntu 20.04
Docker ya no da soporte oficial a Ubuntu 20.04. Aun así, la receta intenta la instalación si el repositorio de Docker todavía publica esa versión, y deja una advertencia en el registro. Para un servidor de producción, es mejor Ubuntu 22.04, Ubuntu 24.04, Debian 12 o Debian 13, todas con soporte.
Copias de seguridad
Las imágenes se pueden volver a descargar, tus datos no. Respalda los volúmenes con nombre, los directorios montados y tus archivos compose.yaml con sus variables de entorno. Para una base de datos, es preferible una exportación lógica (pg_dump, mysqldump) a copiar el volumen en caliente.
