tech:docker:portainer

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
tech:docker:portainer [18/06/2026 22:57] – suprimit - edició externa (Data desconeguda) 127.0.0.1tech:docker:portainer [18/06/2026 23:51] (actual) mate
Línia 1: Línia 1:
 += portainer
 +{{tag>docker}}
 +gestor de contenedores de Docker
  
 +== server
 +<code yaml docker-compose.yml>
 +services:
 +  portainer:
 +    #image: portainer/portainer-ce:sts
 +    image: portainer/portainer-ee:2.40.0
 +    restart: always
 +    network_mode: host
 +    volumes:
 +      - /var/run/docker.sock:/var/run/docker.sock
 +      - ./data:/data
 +    container_name: portainer
 +#    ports:
 +#      - 9443:9443
 +#      - 8000:8000  # Remove if you do not intend to use Edge Agents
 +
 +# networks:
 +#   default:
 +#     name: portainer_network 
 +</code>
 +
 +== agent (in remote server)
 +  * fijamos la IP interna:<code yaml docker-compose.yml>
 +name: portainer
 +
 +services:
 +    agent:
 +      image: portainer/agent:sts
 +      restart: always
 +      networks:
 +        portainer_agent_net:
 +          ipv4_address: 172.20.0.5      
 +      volumes:
 +        - /var/run/docker.sock:/var/run/docker.sock
 +        - /var/lib/docker/volumnes:/var/lib/docker/volumes
 +        - /:/host
 +      container_name: portainer-agent
 +
 +networks:
 +  portainer_agent_net:
 +    ipam:
 +      config:
 +        - subnet: 172.20.0.0/16
 +</code>
 +  * abrimos un tunel desde el servidor: <code bash># -f hace que se quede en background
 +ssh -N -f -L 9002:172.20.0.5:9001 s4.fidmag.org
 +# podemos localizarlo después con:
 +ps aux | grep ssh
 +# o eliminarlo directamente:
 +fuser -k 9002/tcp
 +</code>
 +  * configuramos el entorno en portainer server
 +  * también se puede hacer a través de:<code bash>
 +# Instalación (en Ubuntu/Debian)
 +sudo apt install autossh
 +
 +# Crear el túnel persistente
 +autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L 9002:172.20.0.5:9001 usuario@IP-SERVIDOR-REMOTO
 +</code>
 +=== otros comandos
 +  * tunel activo?: <code bash>netstat -tunlp | grep 9002
 +# O también:
 +ss -tunlp | grep 9002</code>
 +  * ip contenedor: <code bash>docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' portainer-agent</code>
 +
 +== agente
 +<code yaml>
 +services:
 +  portainer-agent:
 +    image: portainer/agent:latest
 +    container_name: portainer-agent
 +    restart: always
 +    volumes:
 +      - /var/run/docker.sock:/var/run/docker.sock
 +#      - /var/lib/docker/volumes:/var/lib/docker/volumes
 +    ports:
 +      - "9001:9001"
 +    # IMPORTANTE: En entornos muy restrictivos, a veces requiere modo privilegiado
 +    privileged: true  
 +</code>
 +
 +== saltar "http VS https" en agente remoto tunelizado + 2 portainer servers
 +portainer degrada a http las conexiones locales. 
 +  * crear **127.0.0.1 agent.remote.local** en ''/etc/hosts''
 +  * modificar portainer server para añadir:<code yaml>    extra_hosts:
 +      - "agent.s4.local:host-gateway"</code>
 +    * esto evita que se use el DNS de Docker que no encontraba ese servidor
 +  * montar el tunel:<code bash>ssh -N -L 0.0.0.0:9002:172.20.0.6:9001 server.com</code>
 +    * hemos montado un segundo agente (portainer solo adminte 1 conexión con un agente, y una vez emparejado no soporta más):<code yaml>name: portainer
 +
 +services:
 +    agent-fidmag:
 +      image: portainer/agent:sts
 +      restart: always
 +      networks:
 +        portainer_agent_net:
 +          ipv4_address: 172.20.0.5      
 +      volumes:
 +        - /var/run/docker.sock:/var/run/docker.sock
 +        - /var/lib/docker/volumnes:/var/lib/docker/volumes
 +        - /:/host
 +      container_name: portainer-agent-fidmag
 +
 +    agent-mate:
 +      image: portainer/agent:sts
 +      restart: always
 +      networks:
 +        portainer_agent_net:
 +          ipv4_address: 172.20.0.6
 +      volumes:
 +        - /var/run/docker.sock:/var/run/docker.sock
 +        - /var/lib/docker/volumnes:/var/lib/docker/volumes
 +        - /:/host
 +      container_name: portainer-agent-mate
 +
 +networks:
 +  portainer_agent_net:
 +    ipam:
 +      config:
 +        - subnet: 172.20.0.0/16
 +</code>
 +== reset contraseña
 +<code bash>
 +#!/bin/bash
 +
 +docker pull portainer/helper-reset-password
 +docker run --rm -v ./data:/data portainer/helper-reset-password
 +</code>