Instalación de Portainer CE

Por: Artiko
portainerdockerinstalaciondevops

Instalación

Vamos a instalar Portainer Server CE sobre un host con Docker standalone en Linux, que es el escenario más común para empezar. Es el mismo Server que luego gestionará entornos remotos, Swarm o Kubernetes.

Pre-requisitos

Paso 1 — Crear el volumen de datos

Portainer guarda su configuración y base de datos en /data. Creamos un volumen con nombre para que sobreviva a recreaciones del contenedor:

docker volume create portainer_data

Paso 2 — Desplegar el Server

docker run -d \
  -p 8000:8000 \
  -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 parte:

OpciónPara qué
-p 9443:9443UI web por HTTPS (certificado autofirmado por defecto)
-p 8000:8000Túnel TCP para Edge Agents (opcional si no usás Edge)
--restart=alwaysPortainer vuelve a levantar tras reinicios del host
-v /var/run/docker.sock:...Le da acceso al Docker del host para gestionar el entorno local
-v portainer_data:/dataPersiste su base de datos
portainer/portainer-ce:ltsImagen CE, canal estable (LTS)

Seguridad: montar docker.sock da a Portainer control total del host. Es necesario para gestionar el entorno local, pero tenelo presente: cualquiera con acceso admin a Portainer tiene, de facto, acceso root al host.

Paso 3 — Primer acceso y usuario admin

Abrí el navegador en:

https://localhost:9443

(Reemplazá localhost por la IP o dominio del host si entrás de forma remota.) El navegador advertirá por el certificado autofirmado; aceptás la excepción.

En la primera pantalla creás el usuario administrador. Reglas:

Tras crear el admin, Portainer detecta el entorno local (tu Docker) y te lleva al dashboard.

Alternativa: instalación con Docker Compose

Si preferís declarar la instalación como código:

# portainer-compose.yml
services:
  portainer:
    image: portainer/portainer-ce:lts
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:
docker compose -f portainer-compose.yml up -d

HTTPS con tu propio certificado

Por defecto Portainer genera un certificado autofirmado. Para producción conviene uno real:

Actualizar Portainer

Como Portainer corre en un contenedor y sus datos viven en el volumen, actualizar es recrear el contenedor con la imagen nueva:

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:lts
# volvé a ejecutar el mismo `docker run` del Paso 2

El volumen portainer_data conserva usuarios, entornos y configuración, así que no perdés nada. Volvemos sobre upgrades, backups y la función de auto-update de parches en el capítulo 14.

Nota sobre Watchtower: no uses Watchtower para actualizar el propio contenedor de Portainer; puede dejarlo en un estado inconsistente. Actualizalo manualmente o con la función oficial.


AnteriorCapítulo 1: Introducción · SiguienteCapítulo 3: Interfaz y entornos