Portainer
Portainer es una herramienta web open-source que permite gestionar contenedores. Permite administrar contenedores de forma remota o local, la infraestructura de soporte y todos los aspectos de las implementaciones de Kubernetes, Podman, Docker standalone y Docker Swarm

Enlaces
Requisitos Previos
Gestor de contenedores Docker instalado
Fichero de configuración
Crea un fichero docker-compose.yaml con el siguiente contenido:
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:lts
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
ports:
- 9443:9443
volumes:
portainer_data:
name: portainer_data
networks:
default:
name: portainer_network
Instalación
# Crea directorio para portainer
mkdir portainer
cd portainer
# Crea el ficjhero docker-compose y pega el contenido
# Arranca portainer
docker compose up -d
# Para portainer
docker compose down
Configuración
Acceder a la interfaz web:
- URL:
https://<HOST>:9443 AlEn el primer acceso, Portainer te pedirá crear el usuario administrador.
Publicando detrás de un proxy
Crear registro DNS
En el proveedor que aloja el servidor DNS público, crear un registro DNS que resuelva la IP pública que llega al Proxy hacia un nombre del estilo "host.domain.com"
NGINX Proxy Manager
Para publicar el contenedor detrás del proxy NGINX, es necesario instalarlo antes. Así que, sigue el siguiente documento para instalar NGINX Proxy Manager.
Para publicar el contenedor detrás de NGINX proxy, como el stack está en la red proxy solo deberás crear un nuevo host
Crear un nuevo "proxy host"
Añade un nuevo proxy host con el nombre de dominio creado en el paso anterior redirigido hacia el nombre del contenedor y el puerto que use:

Traefik

Para publicar el contenedor detrás del proxy Traefik, es necesario instalarlo antes. Así que, sigue el siguiente documento para instalar Traefik.
Un vez instalado, para publicar el contenedor detrás del proxy Traefik, deberás añadir al fichero docker-compose.yaml las siguientes etiquetas al servicio portainer
labels:
- traefik.enable=true
- traefik.http.routers.portainer.rule=Host(`portainer.dominio.com`)
- traefik.http.routers.portainer.tls=true
- traefik.http.routers.portainer.tls.certresolver=letsencrypt
- traefik.http.services.portainer.loadbalancer.server.port=9000
- traefik.http.routers.portainer.middlewares=privateIPs@file
Actualizar Portainer Bussiness
https://docs.portainer.io/v/ce-2.9/start/upgrade/tobe/docker
Modifica el repositorio en el fichero docker-compose para que usa la imagen de Portainer Bussiness
image: portainer/portainer-ee
Actualiza el contenedor
docker compose up --force-recreate --build -d
docker image prune -f

Añadir un entorno de Docker individual
Add a Docker Standalone environment – Portainer Documentation
Vamos a añadir un nuevo entorno individual de docker vía API. Previamente, nuestra instancia de docker deberá admitir conexiones remotas.
Configurar acceso remoto para Docker
para modificar el fichero docker.service crea el siguiente fichero:
mkdir /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/override.conf
Añade las siguientes líneas:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://IP_docker:2375
Guarda el fichero y recarga la configuración de «systemctl»
systemctl daemon-reload
Reinicia docker
systemctl restart docker.service
Verifica los cambios
netstat -lntp | grep dockerd

Selecciona Docker Standalone y ejecuta el asistente. Selecciona la opción API , rellena los datos que pide
Validar via OAuth
Microsoft
Portainer
Authenticate via OAuth | Portainer Documentation
Para Portainer Bussiness selecciona Settings -> Authentication. Bajo Authentication method elije OAuth. Después selecciona el Provider Microsoft y rellena los campos Tenant ID, Aplication ID y el valor del secreto generado en Aplication Key para la app creada en Entra ID

