portainer
gestor de contenedores de Docker
server
- 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
agent (in remote server)
- fijamos la IP interna:
- 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
- abrimos un tunel desde el servidor:
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
- configuramos el entorno en portainer server
- también se puede hacer a través de:
# 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
otros comandos
- tunel activo?:
netstat -tunlp | grep 9002 # O también: ss -tunlp | grep 9002
- ip contenedor:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' portainer-agent
agente
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