This page permanently redirects to gemini://gmi.bacardi55.io/blog/2020/04/17/docker-swarm-web-dashboard-with-portainer/.

Docker swarm Web dashboard with Portainer

Posted on 2020-04-17

Context

Today, a very quick blog post to continue the series of my docker swarm services recipes[1]. If you haven't, I suggest reading some of my my home lab[2] posts to give you an idea if you don't already have an understanding of a docker swarm architecture.

=> 1: /categories/swarmservice/ | 2: /pages/home-lab/

Today's "recipe" is for Portainer[3]. For those living outside the docker world before, Portainer[4] is a web UI to manage docker containers (with or without swarm engine).

=> 3: https://www.portainer.io/ | 4: https://www.portainer.io/

As indicated on their website: Portainer^1[5]:

=> 5: %5Bhttps://www.portainer.io/%5D(https://www.portainer.io)

Build and manage your Docker environments with ease today.

In a simple configuration with docker running standalone (meaning not with kubernetes or swarm mode), you can just run the portainer/portainer container on your server, but in a swarm mode, you need to deploy agents on each node that will communicate with portainer server.

Installation

Create directory structure first, if you follow my filesystem structure[^2], just do:

mkdir /mnt/cluster-data/{containers-data,services-config}/portainer

Then, create the /mnt/cluster-data/services-config/portainer/docker-compose.yml file:

version: '3'

services:
  agent:
    image: portainer/agent
    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
    command: -H tcp://tasks.agent:9001 --tlsskipverify
    ports:
      - 9000:9000
      - 8000:8000 #changeme
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
    volumes:
      - /mnt/cluster-data/containers-data/portainer/:/data #changeme if you don't use this file structure

networks:
  agent_network:
    driver: overlay

Important piece are:

Deploy the stack:

docker stack deploy portainer -c /mnt/cluster-data/services-config/portainer/docker-compose.yml

You can then go to http://<ClusterIPAddress:8000, to create your user and configure portainer (select environment local and then create your user)

And stop it:

docker stack rm portainer

That's it for now, I did say it would be a very quick one :).

=> [^2]: GlusterFS setup

=> /gemlog/

=> Send me a gemini mention | send me an email!

Proxy Information
Original URL
gemini://gmi.bacardi55.io/blog/2020/04/17/docker-swarm-web-dashboard-with-portainer
Status Code
Success (20)
Meta
text/gemini; lang=en
Capsule Response Time
329.222052 milliseconds
Gemini-to-HTML Time
0.89217 milliseconds

This content has been proxied by September (ba2dc).