Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:docker:portainer:start

Dies ist eine alte Version des Dokuments!


Portainer Stack Installation

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

Jetzt muss man nur noch einen Moment warten bis die Portainer Container gestartet sind. Direkt nach dem Deploy sieht das noch so aus:

root@dockerman01:/docker/data/compose/portainer# docker service ls
ID             NAME                  MODE         REPLICAS   IMAGE                           PORTS
sb392p1tmj3v   portainer_agent       global       0/4        portainer/agent:latest          
lb32q69txxhd   portainer_portainer   replicated   0/1        portainer/portainer-ce:latest   *:8000->8000/tcp, *:9000->9000/tcp, *:9443->9443/tcp

Das heisst die Services sind bekannt, es laufen 0 von 4 Portainer Agenten und 0 von einem Portainer Server. Die Inhalte der Container werden gerade im Hintergrund geladen und dann gestartet. Bei mir hat das so ca. eine Minute gedauert aber das hängt ntürlich auch von der Internetgeschwindigkeit ab da diese aus dem Internet geholt werden.

Irgendwann sieht das dann so aus und Portainer ist installiert und läuft:

root@dockerman01:/docker/data/compose/portainer# docker service ls
ID             NAME                  MODE         REPLICAS   IMAGE                           PORTS
sb392p1tmj3v   portainer_agent       global       4/4        portainer/agent:latest          
lb32q69txxhd   portainer_portainer   replicated   1/1        portainer/portainer-ce:latest   *:8000->8000/tcp, *:9000->9000/tcp, *:9443->9443/tcp
projekte/docker/portainer/start.1668508515.txt.gz · Zuletzt geändert: 2022/11/15 11:35 von admin