Portainer is a container management platform, with it you can easily deploy, configure and secure containers in minutes on Docker, Kubernetes, Swarm and more.
I use Portainer to deploy every Docker stack in my swarm.
Setup using docker swarm
Section titled “Setup using docker swarm”version: '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 ports: - 9001:9001 networks: - homelab deploy: mode: global placement: constraints: [node.platform.os == linux]
portainer: image: portainer/portainer-ee:latest command: -H tcp://tasks.agent:9001 --tlsskipverify ports: - "9000:9000" - "8000:8000" volumes: - portainer_data:/data networks: - homelab deploy: mode: replicated replicas: 1 placement: constraints: [node.role == manager] labels: - traefik.http.routers.portainer.rule=Host(`portainer.zrx.sh`) - traefik.http.services.portainer.loadbalancer.server.port=9000 - traefik.http.routers.portainer.middlewares=homelab-whitelist@file - traefik.http.routers.portainer.tls=true - traefik.http.routers.portainer.tls.certresolver=production - traefik.http.routers.portainer.tls.domains[0].main=zrx.sh - traefik.http.routers.portainer.tls.domains[0].sans=*.zrx.sh
networks: homelab: external: true
volumes: portainer_data:
Then run :
docker stack deploy -c portainer-agent-stack.yml portainer
Deprecated
Section titled “Deprecated”Replaced with Dockge because it’s way simpler and more suitable for homelab imo.