gestor de contenedores de Docker
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 extra_hosts: # crear entrada a /etc/hosts - "agent.s4.local:host-gateway" - "agent.arsys.local:host-gateway"
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
# -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: ps aux | grep ssh # o eliminarlo directamente: fuser -k 9002/tcp
# 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
[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
# 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
netstat -tunlp | grep 9002 # O también: ss -tunlp | grep 9002
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' portainer-agent
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
portainer degrada a http las conexiones locales.
/etc/hostsextra_hosts: - "agent.s4.local:host-gateway"
ssh -N -L 0.0.0.0:9002:172.20.0.6:9001 server.com
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
#!/bin/bash docker pull portainer/helper-reset-password docker run --rm -v ./data:/data portainer/helper-reset-password