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 siguiendo los pasos de instalar docker
Ejecutar con docker compose
Crea un fichero "docker-compose.yaml" con el siguiente contenido:
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
restart: always
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer:/data
networks:
- proxy
volumes:
portainer:
networks:
proxy:
external: true # Usa una red existente (debes crearla antes con `docker network create proxy`)
Después podrás gestionar con el comando "docker compose"
# Arranca el "stack"
sudo docker compose up -d
# Para el "stack"
sudo docker compose down
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 de NGINX proxy, deberás recrearinstalarlo elprimero contenedory conseguir lalas opción "--network=proxy"instrucciones
--network=proxy \
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 proxy Traefik, es necesario instalarlo antes. Así que, sigue el siguiente documento para instalar Traefik.
Un vez instalado, el contenido del fichero "docker-compose.yaml" de portainer portainer es el siguiente:
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
restart: always
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer:/data
networks:
- traefik_public
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
volumes:
portainer:
networks:
traefik_public:
external: true
Configuración de portainer
- http://IP_Docker:
90009000 - https://portainer.$DOMAIN (si has configurado proxy inverso)
En el primer inicio tendremos que crear el usuario privilegios:

Por último conectamos Portainer al al Docker Local:

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 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 opción API , rellena los datos que pide