Docker Container GUI grafische WeboberflÀche mit Portainer

 

UrsprĂŒnglich habe ich Docker rein ĂŒber die Kommandozeile verwaltet, was mit ein paar simplen Befehlen schon sehr einfach ist. Noch mehr Übersicht und eine komfortable Admin-OberflĂ€che liefert Portainer. Portainer selbst kann auch als Docker-Container gestartet werden und macht das Verwalten von Containern zum Kinderspiel.

Software

SoftwarePortainer
GitHubhttps://github.com/portainer/portainer
aktuelle Version 2.19.4
gefunden08.12.2023

Zugriff aus dem Internet

Docker Basics

Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhÀngige isolierte Umgebung:
Beim ersten Start eines Containers, lÀdt Docker selbststÀndig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

Damit Portainer sicher vom Internet erreicht werden kann, setze ich Traefik als Let's Encrypt Reverse-Proxy ein. Der Reverse-Proxy stellt eine verschlĂŒsselte HTTPS-Verbindung zur VerfĂŒgung und ermöglicht es mehrere Websites auf einem Server zu betreiben.

Alternativ zu einem Reverse-Proxy kann auch ein Cloudflare-Tunnel fĂŒr das Veröffentlichen von Webservices aus dem eigenen Netzwerk verwendet werden:

Schritt fĂŒr Schritt Portainer in Docker inklusive Zugriff vom Internet

Hardwareanforderung:
  1. FĂŒr die Docker-Installation kann eine nahezu beliebige Hardware verwendet werden. Zum Beispiel ein virtueller Server eines Providers, oder fĂŒr zu Hause: ein Mini-PC, Notebook, MAC, ein NAS: QNAP, Synology oder eine andere Hardware mit x68-64 Architektur auf der sich Windows oder Linux installieren lĂ€sst.

Schematische Darstellung: Zugriff vom Internet
Voraussetzungen fĂŒr den Internetzugriff:
  1. Eigene registrierte Domain, siehe Domain und dessen Verwaltung.
  2. Cloudflare oder Reverse Proxy:
    1. Cloudflare-Tunnel Service
    2. oder alternativ:
    3. Port-Forwarding und Reverse Proxy mit Let's Encrypt-Zertifikat
    siehe auch: Cloudflare oder Reverse Proxy
Container fĂŒr Portainer

  1. docker-compose.yml anlegen und anpassen
  2. Container starten und 
  3. Einrichten

Setup

Um Portainer mittels docker compose zu starten, kann das offizielle Docker Portainer-Image verwendet werden. Das Image kann mit einer simplen docker-compose.yml Datei heruntergeladen, erstellt und gestartet werden. Vorab sollte die Datei mit einem beliebigen Texteditor wie folgt befĂŒllt und dann angepasst werden:

Dateiname: docker-compose.yml, Inhalt:

services:
  portainer:
    image: portainer/portainer-ce:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data
   #FĂŒr einen direkten Test-Zugriff, in den folgenden 2 Zeilen "#" entfernen. Aufruf: http://localhost:9000 oder http://ServerIP:9000
    #ports:   
      #- "9000:9000" 
   #Labels fĂŒr ReverseProxy, siehe: https://www.libe.net/traefik
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.portainer.rule=Host(`portainer.domain.tld`)"
      - "traefik.http.routers.portainer.entrypoints=websecure"      
      - "traefik.http.routers.portainer.tls.certresolver=myresolver"
      - "traefik.http.services.portainer.loadbalancer.server.port=9000"
      - "traefik.http.routers.portainer.service=portainer"

#Ohne dem Einsatz eines Reverse Proxy (https://www.libe.net/traefik) fehlt voraussichtlich das Netzwerk webproxy 
#und die folgenden Zeilen können entfernt oder auskommentiert werden. Alternativ kann das Netzwerk mit "docker network create webproxy" erstellt werden
networks:
  default:
    name: webproxy
    external: true

FĂŒr einen direkten Zugriff ĂŒber die IP-Adresse oder localhost - auch ohne Reverse Proxy, DNS oder öffentlicher IP - kann die auskommentierten Port-Einstellung fĂŒr Testzwecke aktiviert werden:

...
   #FĂŒr einen direkten Test-Zugriff, in den folgenden 2 Zeilen "#" entfernen. Aufruf: http://localhost:9000 oder http://ServerIP:9000
    ports:   
      - "9000:9000" 
...

Um aus dem Internet ĂŒber den Traefik Reverse Proxy zugreifen zu können, muss in den Labels die DomĂ€ne mit den zuvor erstellten DNS-EintrĂ€gen ersetzt werden (im Beispiel: portainer.domain.tld).

Das Beispiel verwendet Bind-Mounts und keine Docker Volumes fĂŒr das permanente Speichern der Daten. Siehe: Docker Daten speichern: Docker Volumes vs. Host-Ordner

Portainer starten

Der Start erfolgt aus dem Ordner der docker-compose.yml-Datei mit dem Befehl„"docker-compose up“:

docker-compose up -d

Verwaltung

Beim Aufruf der angegebenen Domain (https://portainer.domain.tld) meldet sich das Portainer-Setup. Beim Testbetrieb auf dem eigenen Rechner und dem Aktivieren von Port 9000 kann der Aufruf zudem direkt ohne Internet ĂŒber die URLs http://localhost:9000 oder http://ServerIP:9000 erfolgen.

Dadurch, dass in der docker-compose-yml-Datei als Volume  /var/run/docker.sock in den Container gemappt wird, kann Portainer alle Container auslesen und verwalten.

Bestehende Docker-Container in Portainer

Wenn die Container außerhalb von Portainer erstellt werden, ist deren Conrol: "Limited" und nicht alle Aktionen verfĂŒgbar:

 

Der Container fĂŒr Portainer selbst ist logischerweise ein Container der außerhalb von Portainer erstellt wurde, da Portainer vor dem Start nicht zur VerfĂŒgung steht: wie auch ...

Das Starten oder Stoppen der Container, anzeigen der Logs oder ein Blick auf die Konsole ist aber auch mit "Limited" möglich.

Neue Container anlegen

Neue Container können in Portainer ĂŒber vorbereitete App Templates erstellt werden, z.B: WordPress, Joomla oder Drupal:

Zudem kann ein beliebiger Stack ĂŒber ein docker-compose-File erstellt werden:

Als Beispiel, siehe auch WordPress in Docker inkl. HTTPS Let’s Encrypt-Setup

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE fĂŒr deine Bewertung!

Aktualisiert: 08.12.2023 von Bernhard | Translation English |🔔 | Kommentare:0

➹ Nginx-LetsEncrypt Reverse Proxy in der Praxis | ➩ Container | Nextcloud Server Docker | Einrichtung +https: Let’s Encrypt [ssl] ➹
➊ Docker | Docker Schnellstart: Warum? WofĂŒr Container? Hardware? ➚

Top-Artikel in diesem Bereich


ioBroker installieren - Docker

Mit ioBroker können verschiedene Automatisierungslösungen oder GerÀte in einem System zusammengefasst werden. Um bestimmte Gateways oder GerÀte ansprechen zu können, werden in ioBroker verschiedene Adapter verwendet.


Inbetriebnahme Zigbee2MQTT in Docker - Schritt fĂŒr Schritt

Zigbee2MQTT ist eine Open-Source Zigbee-Bridge welche sich, dank dem Netzwerkprotokoll MQTT, leicht in bestehende Smarthome-Lösungen integrieren lÀsst. Als Beispiel kann Zigbee2MQTT kombiniert mit MQTT - Broker  Mosquitto und Home-Assistant Daten der Zigbee-GerÀte erfassen, anzeigen, aufzeichnen und diese steuern. Das hier beschriebene Setup verwendet Docker als Basis. Herstellerseite: https://www.zigbee2mqtt.io


Bitwarden in Docker betreiben - Setup Schritt fĂŒr Schritt

Bitwarden ist ein webbasierter Passwort-Manager, Ă€hnlich LastPass, aber Open Source und der Möglichkeit diesen selbst zu betreiben (hosten). Wie sich Bitwarden im Vergleich zu anderen Passwort-Managern einordnet, habe ich auf folgender Seite ĂŒberlegt: Passwort-Manager sicher? KeePass vs. LastPass vs. Bitwarden. Bitwarden besteht aus mehreren Services, welche ĂŒber verschiedene Container bereitgestellt werden können. Das relativ aufwĂ€ndige Setup wurde mit "Bitwarden Unified" speziell fĂŒr ein Selbs...

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details