Portainer Edge Agent mit docker-compose und systemd betreiben

English Deutsch

In diesem Beitrag zeigen wir, wie man den Portainer Edge Agent auf einem Computer mit docker-compose und systemd betreibt. Falls Sie docker oder docker-compose noch nicht installiert haben, siehe Docker und docker-compose auf Ubuntu in 30 Sekunden installieren.

Wenn Sie keine laufende Portainer-Instanz haben, mit der sich der Edge Agent verbinden kann, siehe Portainer mit docker-compose und systemd betreiben!

Erstellen Sie zuerst das Verzeichnis, in dem die docker-compose.yml liegen soll, und bearbeiten Sie diese:

commands.sh
sudo mkdir -p /var/lib/portainer-edge-agent
sudo nano /var/lib/portainer-edge-agent/docker-compose.yml

Fügen Sie nun diese Konfigurationsdatei ein:

docker-compose.yml
services:
  portainer_edge_agent:
    image: portainer/agent
    command: -H unix:///var/run/docker.sock
    restart: always
    volumes:
      - /:/host
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_agent_data:/data
    environment:
      - CAP_HOST_MANAGEMENT=1
      - EDGE=1
      - EDGE_ID=[YOUR EDGE ID]
      - EDGE_KEY=[YOUR EDGE KEY]

volumes:
  portainer_agent_data:

Vergessen Sie nicht, [YOUR EDGE ID] und [YOUR EDGE KEY] auszufüllen. Diese finden Sie, indem Sie einen neuen Endpunkt in Ihrer Portainer-Instanz erstellen.

Nun können wir den systemd-Dienst erstellen, der den Edge Agent automatisch startet:

commands.sh
sudo nano /etc/systemd/system/PortainerEdgeAgent.service
PortainerEdgeAgent.service
[Unit]
Description=PortainerEdgeAgent
Requires=docker.service
After=docker.service

[Service]
Restart=always
User=root
Group=docker
WorkingDirectory=/var/lib/portainer-edge-agent
# Container herunterfahren (falls laufend) wenn Unit gestoppt wird
ExecStartPre=/usr/local/bin/docker-compose -f docker-compose.yml down
# Container starten wenn Unit gestartet wird
ExecStart=/usr/local/bin/docker-compose -f docker-compose.yml up
# Container stoppen wenn Unit gestoppt wird
ExecStop=/usr/local/bin/docker-compose -f docker-compose.yml down

[Install]
WantedBy=multi-user.target

Nun können wir den Agent aktivieren und starten:

commands.sh
sudo systemctl enable PortainerEdgeAgent.service
sudo systemctl start PortainerEdgeAgent.service

Check out similar posts by category: Container, Docker, Linux, Portainer