--- title: "Cómo instalar Portainer CE con Docker en Ubuntu 24.04" description: "Instala Portainer Community Edition en Docker sobre Ubuntu 24.04, accede por HTTPS en el puerto 9443, crea el administrador y gestiona tus contenedores." category: "Linux" language: es source: https://cubepath.com/es/docs/linux/como-instalar-portainer-en-docker updated: 2026-09-25 --- # Cómo instalar Portainer CE con Docker en Ubuntu 24.04 Portainer es una interfaz web para administrar Docker: desde el navegador puedes ver y gestionar contenedores, imágenes, volúmenes, redes y stacks de Docker Compose. En este tutorial instalarás Portainer Community Edition (CE) como contenedor en un servidor Ubuntu 24.04, accederás a su panel por HTTPS, crearás el usuario administrador y aprenderás a actualizarlo sin perder su configuración. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 1 GB de RAM. - Un usuario no root con privilegios `sudo`. - Docker Engine instalado desde el repositorio oficial de Docker. Si aún no lo tienes, sigue la guía "Cómo instalar Docker en Ubuntu 24.04, Debian 12 y Rocky 9". - El puerto TCP 9443 accesible desde tu equipo. Comprueba que Docker funciona antes de empezar: ```bash sudo docker version --format '{{.Server.Version}}' ``` ```output 28.4.0 ``` Cualquier versión actual de Docker Engine es válida. ## Paso 1: Crear el volumen de datos Portainer guarda su base de datos interna (usuarios, entornos, configuración) en `/data` dentro del contenedor. Crea un volumen de Docker para que esos datos sobrevivan cuando actualices o recrees el contenedor: ```bash sudo docker volume create portainer_data ``` Comprueba que existe: ```bash sudo docker volume ls ``` ```output DRIVER VOLUME NAME local portainer_data ``` ## Paso 2: Ejecutar el contenedor de Portainer Lanza Portainer CE con la imagen `lts`, que corresponde a la versión de soporte extendido recomendada para producción: ```bash sudo docker run -d \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:lts ``` Qué hace cada opción: - `-p 9443:9443` publica la interfaz web por HTTPS. Portainer genera un certificado autofirmado la primera vez que arranca. - `--restart=always` vuelve a arrancar el contenedor tras un reinicio del servidor o del servicio Docker. - `-v /var/run/docker.sock:/var/run/docker.sock` da a Portainer acceso a la API de Docker del propio servidor. - `-v portainer_data:/data` monta el volumen del paso anterior. > Importante: montar `/var/run/docker.sock` equivale a dar acceso de root al servidor. Quien entre en Portainer como administrador controla la máquina, así que protege el acceso con una contraseña robusta. Las guías antiguas publican también el puerto `9000` (HTTP sin cifrar) y el `8000`. El `9000` ya no es necesario y el `8000` solo se usa para agentes Edge, por lo que no los publicamos. Comprueba que el contenedor está en marcha: ```bash sudo docker ps --filter name=portainer ``` ```output CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3f2a1b9c8d7e portainer/portainer-ce:lts "/portainer" 20 seconds ago Up 19 seconds 8000/tcp, 9000/tcp, 0.0.0.0:9443->9443/tcp portainer ``` Y que responde por HTTPS desde el propio servidor: ```bash curl -kI https://localhost:9443 ``` ```output HTTP/1.1 200 OK ... ``` ## Paso 3: Tener en cuenta el firewall Docker añade sus propias reglas de iptables para los puertos publicados con `-p`, y esas reglas se aplican antes que las de UFW. Eso significa que el puerto 9443 queda accesible desde internet aunque UFW no lo permita de forma explícita, y que un `ufw deny 9443` no lo bloquea. Si no quieres exponer Portainer a internet, publícalo solo en la interfaz local cambiando la opción `-p` al crear el contenedor: ```bash sudo docker run -d \ -p 127.0.0.1:9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:lts ``` (Si ya lo creaste con el comando del paso 2, elimínalo antes con `sudo docker rm -f portainer`; los datos están en el volumen y no se pierden.) Después accede a través de un túnel SSH desde tu equipo: ```bash ssh -L 9443:localhost:9443 your_user@your_server_ip ``` Con el túnel abierto, la interfaz está disponible en `https://localhost:9443` en tu navegador local. ## Paso 4: Crear el usuario administrador Abre en el navegador la dirección de Portainer (o `https://localhost:9443` si usas el túnel SSH): ```text https://your_server_ip:9443 ``` Sustituye `your_server_ip` por la IP pública del servidor. El navegador avisará de que el certificado es autofirmado; acepta la excepción para continuar. En la primera pantalla, crea el administrador: 1. Escribe el nombre de usuario (por defecto `admin`, puedes cambiarlo). 2. Introduce una contraseña de al menos 12 caracteres y confírmala. 3. Pulsa **Create user**. > Nota: por seguridad, Portainer solo permite crear el administrador durante los primeros 5 minutos tras arrancar. Si ves un aviso de tiempo agotado, reinicia el contenedor con `sudo docker restart portainer` y vuelve a cargar la página. ## Paso 5: Conectar el entorno Docker local Tras crear el usuario, Portainer muestra el asistente de bienvenida. Pulsa **Get Started** para usar el entorno en el que se está ejecutando Portainer. Aparecerá un entorno llamado `local` en la página **Home**. Haz clic en `local` para abrir su panel. Deberías ver el número de contenedores, imágenes, volúmenes y redes del servidor, entre ellos el propio contenedor `portainer`. Para comprobar que todo funciona, despliega un contenedor de prueba: 1. Ve a **Containers > Add container**. 2. En **Name** escribe `hello-nginx` y en **Image** escribe `nginx:alpine`. 3. En **Network ports configuration**, pulsa **Publish a new network port** y asigna el puerto `8080` del host al `80` del contenedor. 4. Pulsa **Deploy the container**. Comprueba desde el servidor que responde: ```bash curl -I http://localhost:8080 ``` ```output HTTP/1.1 200 OK Server: nginx/1.29.1 ... ``` Cuando termines, elimina el contenedor de prueba desde la lista **Containers** seleccionándolo y pulsando **Remove**. ## Paso 6: Actualizar Portainer Para actualizar Portainer basta con recrear el contenedor con la imagen nueva. Como la configuración vive en el volumen `portainer_data`, no se pierde nada. Detén y elimina el contenedor actual: ```bash sudo docker stop portainer sudo docker rm portainer ``` Descarga la última imagen `lts`: ```bash sudo docker pull portainer/portainer-ce:lts ``` Vuelve a crear el contenedor con el mismo comando `docker run` que usaste en el paso 2 (o en el paso 3 si lo publicaste solo en local). Al entrar de nuevo en la interfaz, la versión aparece en la esquina inferior izquierda. ## Solución de problemas - **La página no carga en `https://your_server_ip:9443`**: comprueba que el contenedor está `Up` con `sudo docker ps` y revisa sus registros con `sudo docker logs portainer`. Si tienes un firewall externo en el panel de tu proveedor, permite en él el puerto 9443. - **Accedes por `http://` y no carga**: Portainer solo escucha por HTTPS en el 9443. Usa `https://`. - **Has olvidado la contraseña del administrador**: si no hay otro administrador, la forma más sencilla es borrar el contenedor y el volumen (`sudo docker rm -f portainer` y `sudo docker volume rm portainer_data`) y volver a instalar. Perderás la configuración de Portainer, pero no tus contenedores. ## Conclusión Tienes Portainer CE funcionando sobre Docker en Ubuntu 24.04, accesible por HTTPS y con un administrador protegido. Como siguientes pasos, puedes desplegar aplicaciones desde **Stacks** pegando un archivo de Docker Compose, crear usuarios adicionales con permisos limitados en **Users**, o colocar Portainer detrás de un proxy inverso con un certificado de Let's Encrypt para tu dominio.