Dies ist eine alte Version des Dokuments!
Portainer bietet eine grafische Oberfläche zur Verwaltung des Docker Swarm.
Zuerst brauchen wir ein Datenverzeichnis für Portainer auf unserem NFS-Share:
mkdir /docker/data/volumes/portainer
Portainer (dockerman01):
curl -L https://downloads.portainer.io/ce2-16/portainer-agent-stack.yml -o portainer-agent-stack.yml
Damit holt man sich erstmal das YML Manifest welches im Prinzip eine Docker Compose Datei ist. Diese werden wir noch ein bisschen anpassen. Interessant ist das ce2-16 (Community Edition) in der URL da es auch eine ee (Enterprise Edition) Version gibt für die man allerdings Lizenzen braucht.
root@dockerman01:/docker/data/compose/portainer# cat portainer-agent-stack.yml
ersion: '3.2'
services:
agent:
image: portainer/agent:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:latest
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- /docker/data/volumes/portainer:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
Ich habe das volume gändert da ich für jeden Container ein eigenes Verzeichnis für die persistenten Daten habe:
volumes: - portainer_data:/data
in
volumes: - /docker/data/volumes/portainer:/data
Dann kann am Ende die Definition des Docker Volumes gelöscht werden, diese beiden Zeilen kommen ersatzlos weg: volumes:
portainer_data:
Ebenso habe ich bei den beiden image: Angaben die Versionsnummer auf „latest“ geändert um immer die aktuelle Version zu bekommen.
Anschliessend kann Portainer geladen und gestartet werden:
docker stack deploy -c portainer-agent-stack.yml portainer