Skip to main content

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

Connect to the Docker Socket - Portainer Documentation

Enlaces

https://www.portainer.io/

https://docs.portainer.io

Requisitos Previos

Fichero de configuración

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:
    external: true

networks:
  proxy:
    external: true

Instalación

# Crea la red 'proxy'
docker network create proxy
# Crea el volumen 'portainer'
docker volume create portainer
# Arranca con el nombre portainer
docker compose -p portainer up -d
# Para portainer
docker compose -p portainer 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.image.png

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:

image.png

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

Configuración de portainer

Abrimos un navegador web, y accedemos al servicio Portainer que tenemos en ejecución en Docker:

  • http://IP_Docker:9000 
  • https://portainer.$DOMAIN (si has configurado proxy inverso)

En el primer inicio tendremos que crear el usuario privilegios:


Por último conectamos Portainer 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
Cuando entres de nuevo en portainer, te pedirá license key. Pégala desde el email que habrás recibido.

‘Business Edition’ aparece ahora en la esquina inferior izquierda.

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

Cómo registrar una aplicación en Entra ID de Microsoft - Microsoft identity platform | Microsoft Learn

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

image.gif

image.png