Esta práctica levanta Portainer sobre Docker con un fichero compose.yaml reproducible: imagen fijada, volumen persistente y el socket de Docker en solo lectura. Antes de empezar necesitas un host Linux con Docker ya instalado; si aún no lo tienes, sigue cómo instalar Docker en Debian 12.

Qué es Portainer y por qué con Docker Compose

Portainer es un panel web que gestiona Docker a través de su API: contenedores, imágenes, volúmenes y redes desde el navegador, sin memorizar comandos. Declararlo en un compose.yaml, en lugar de un docker run largo, deja la configuración versionada y repetible: el mismo fichero reconstruye el servicio en cualquier host. Fijamos la versión de la imagen (portainer-ce:2.40.0, nunca :latest) para que una actualización no cambie el comportamiento sin avisar, y montamos el socket en solo lectura porque Portainer opera por API.

Preguntas frecuentes

¿Por qué el puerto 9443 y no el 9000?

9443 sirve la interfaz por HTTPS con un certificado autofirmado que Portainer genera al arrancar. El antiguo 9000 (HTTP en claro) sigue existiendo, pero 9443 es la opción segura por defecto.

¿Se pierden los datos al actualizar la imagen?

No. Todo el estado vive en el volumen portainer_data. Puedes cambiar la etiqueta de la imagen y volver a levantar el stack: los usuarios, ajustes y entornos siguen ahí.

¿Puedo exponer Portainer en internet?

Mejor detrás de un proxy inverso con un certificado válido. Un buen siguiente paso es instalar Traefik y publicar Portainer con TLS y tu propio dominio.

Siguientes pasos

Si quieres el mismo procedimiento explicado en texto largo, con capturas y variaciones, tienes la guía completa: instalar Portainer con Docker Compose v2.