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

  • Gestor de contenedores docker instalado siguiendo los pasos de instalar docker

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 de NGINX proxy, como el stack está en la red 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 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 fichero docker-compose.yaml  las siguientes etiquetas al servicio 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 9000 
  • 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
Cuando entres de nuevo en 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 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
Authenticate via OAuth | Portainer Documentation