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 [19/06/2026 07:57] – ↷ Page moved from info:cursos:altran:docker:portainer to tech:docker:portainer matetech:docker:portainer [30/06/2026 08:13] (actual) – [autossh] mate
Línia 1: Línia 1:
 = portainer = portainer
 +{{tag>docker}}
 gestor de contenedores de Docker gestor de contenedores de Docker
  
Línia 14: Línia 15:
       - ./data:/data       - ./data:/data
     container_name: portainer     container_name: portainer
-#    ports: +    ports: 
-     - 9443:9443 +      - 9443:9443 
-     - 8000:8000  # Remove if you do not intend to use Edge Agents+      - 8000:8000 # Remove if you do not intend to use Edge Agents 
 +    extra_hosts: 
 +    # crear entrada a /etc/hosts 
 +      - "agent.s4.local:host-gateway"  
 +      - "agent.arsys.local:host-gateway"
  
-# networks: 
-#   default: 
-#     name: portainer_network  
 </code> </code>
  
Línia 46: Línia 48:
         - subnet: 172.20.0.0/16         - subnet: 172.20.0.0/16
 </code> </code>
-  * abrimos un tunel desde el servidor: <code bash>ssh -N -f -L 9002:172.20.0.5:9001 s4.fidmag.org+  * abrimos un tunel desde el servidor: <code bash># -f hace que se quede en background 
 +ssh -N -f -L 0.0.0.0:9002:172.20.0.5:9001 s4.fidmag.org
 # podemos localizarlo después con: # podemos localizarlo después con:
 ps aux | grep ssh ps aux | grep ssh
Línia 52: Línia 55:
 fuser -k 9002/tcp fuser -k 9002/tcp
 </code> </code>
 +      * 9002: puerto tunel a servidor
 +      * 172.20.0.5: ip contenedor agente (puede variar si queremos + de 1)
   * configuramos el entorno en portainer server   * configuramos el entorno en portainer server
 +    * nombre_host_local:puerto
 +  
 +=== autossh
   * también se puede hacer a través de:<code bash>   * también se puede hacer a través de:<code bash>
 # Instalación (en Ubuntu/Debian) # Instalación (en Ubuntu/Debian)
Línia 60: Línia 68:
 autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L 9002:172.20.0.5:9001 usuario@IP-SERVIDOR-REMOTO autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L 9002:172.20.0.5:9001 usuario@IP-SERVIDOR-REMOTO
 </code> </code>
 +  * para hacerlo persistente:<code ini /etc/systemd/system/autossh-portainer.service>[Unit]
 +Description=Tuneles AutoSSH persistentes para Portainer Agents
 +After=network-online.target
 +Wants=network-online.target
 +
 +[Service]
 +Type=simple
 +# IMPORTANTE: Pon tu usuario local de Linux (el que tiene las claves SSH configuradas)
 +User=TU_USUARIO_LOCAL
 +Environment="AUTOSSH_GATETIME=0"
 +# Un solo comando levanta ambos puertos (9002 y 9003)
 +ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L 0.0.0.0:9002:172.20.0.5:9001 -L 0.0.0.0:9003:172.20.0.6:9001 usuario_remoto@IP_DE_S4
 +Restart=always
 +RestartSec=10
 +
 +[Install]
 +WantedBy=multi-user.target</code><code bash># 1. Recargar systemd para que detecte el nuevo archivo
 +sudo systemctl daemon-reload
 +
 +# 2. HABILITAR el servicio (esto hace que arranque tras un REINICIO)
 +sudo systemctl enable autossh-portainer.service
 +
 +# 3. Arrancar el servicio ahora mismo (por primera vez)
 +sudo systemctl start autossh-portainer.service</code>
 +  * necesario acceso por ssh-key sin contraseña
 === otros comandos === otros comandos
   * tunel activo?: <code bash>netstat -tunlp | grep 9002   * tunel activo?: <code bash>netstat -tunlp | grep 9002
Línia 80: Línia 113:
     # IMPORTANTE: En entornos muy restrictivos, a veces requiere modo privilegiado     # IMPORTANTE: En entornos muy restrictivos, a veces requiere modo privilegiado
     privileged: true       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> </code>
  • tech/docker/portainer.1781848660.txt.gz
  • Darrera modificació: 06/07/2026 18:29
  • (edició externa)