Portainer Docker Management Anleitung
Portainer: Docker grafisch verwalten
Portainer ist eine leichtgewichtige Web-UI zur Verwaltung von Docker-Containern, Images und Volumes. Ideal für alle, die Docker nicht nur über die Kommandozeile steuern möchten.
Voraussetzungen
- Docker installiert
- docker-compose (optional)
- Port 9443 (HTTPS) oder 9000 (HTTP) frei
Docker installieren (falls noch nicht vorhanden)
# Docker installieren
curl -fsSL https://get.docker.com | sh
# Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
# Neu einloggen oder:
newgrp docker
Portainer CE installieren
Option 1: Docker Run
# Volume für Daten erstellen
docker volume create portainer_data
# Portainer starten
docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Option 2: Docker Compose
# docker-compose.yml
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9443:9443"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
docker-compose up -d
Erster Zugriff
- Öffnen Sie
https://IHRE-IP:9443 - Erstellen Sie einen Admin-Benutzer
- Wählen Sie "Local" für den lokalen Docker
- Klicken Sie auf "Connect"
⚠️ Wichtig: Erstellen Sie das Admin-Passwort innerhalb von 5 Minuten nach Start, sonst muss Portainer neu gestartet werden.
Portainer-Funktionen
Dashboard
- Übersicht über Container, Images, Volumes, Networks
- Ressourcennutzung auf einen Blick
Container verwalten
- Container starten, stoppen, neustarten
- Logs in Echtzeit anzeigen
- Console/Shell in Container öffnen
- Container-Details und Statistiken
- Neue Container aus Images erstellen
Images
- Images aus Docker Hub pullen
- Unbenutzte Images löschen
- Image-Details anzeigen
Stacks
- docker-compose Stacks deployen
- Direkt YAML bearbeiten
- Stacks aktualisieren
Portainer mit Nginx Reverse Proxy
server {
listen 80;
server_name portainer.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name portainer.example.com;
ssl_certificate /etc/letsencrypt/live/portainer.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/portainer.example.com/privkey.pem;
location / {
proxy_pass https://127.0.0.1:9443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Portainer Agent (für Remote-Docker)
# Auf dem Remote-Server:
docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest
Dann in Portainer: Environments → Add Environment → Agent
Portainer aktualisieren
# Container stoppen und entfernen
docker stop portainer
docker rm portainer
# Neues Image pullen
docker pull portainer/portainer-ce:latest
# Neu starten (Daten bleiben im Volume)
docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Portainer Templates
Portainer bietet App Templates für schnelle Deployments:
- WordPress
- MySQL/MariaDB
- Redis
- Nginx
- und viele mehr...
Sicherheitstipps
- Starkes Passwort: Admin-Passwort sicher wählen
- HTTPS nutzen: Port 9443 statt 9000
- Firewall: Portainer-Port nicht öffentlich
- Reverse Proxy: Zugriff über Domain mit SSL
- Regelmäßig updaten: Sicherheitsupdates einspielen
Troubleshooting
| Problem | Lösung |
|---|---|
| Timeout bei Passwort-Erstellung | docker restart portainer |
| Kein Zugriff auf Docker | Volume-Mount prüfen (/var/run/docker.sock) |
| SSL-Fehler | Port 9443 für HTTPS nutzen |
Weitere Hilfe
- 📖 Portainer Dokumentation
- 📧 E-Mail: support@enjyn.de