Portainer macht Docker-Verwaltung einfach. Mit der Web-Oberfläche können Sie Container, Images, Volumes und Netzwerke ohne Kommandozeile verwalten.
Vorteile von Portainer
- Grafische Oberfläche: Intuitive Verwaltung
- Container-Übersicht: Status auf einen Blick
- Multi-Host: Mehrere Docker-Hosts verwalten
- Templates: Container schnell deployen
- Kostenlos: Community Edition reicht für die meisten
Installation mit Docker
Portainer Volume erstellen
docker volume create portainer_dataPortainer starten
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latestMit Docker Compose
version: '3.8'
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 -dErster Zugriff
Web-Interface öffnen
https://SERVER-IP:9443Admin-Account erstellen
1. Benutzername eingeben (z.B. admin) 2. Sicheres Passwort wählen 3. Account erstellen
Umgebung wählen
"Get Started" → Lokale Docker-Umgebung wird erkannt
Dashboard-Übersicht
Home
- Verbundene Umgebungen
- Gesamtstatistiken
Local (Docker Host)
- Dashboard: Übersicht aller Ressourcen
- Containers: Container-Verwaltung
- Images: Image-Verwaltung
- Volumes: Volumes-Verwaltung
- Networks: Netzwerk-Verwaltung
- Stacks: Docker Compose Stacks
Container verwalten
Container erstellen
1. Containers → Add container 2. Name eingeben 3. Image wählen (z.B. nginx:latest) 4. Port-Mapping konfigurieren 5. Volumes hinzufügen 6. Environment-Variablen setzen 7. Deploy the container
Container-Aktionen
| Aktion | Beschreibung | |--------|--------------| | Start | Container starten | | Stop | Container stoppen | | Restart | Neustarten | | Kill | Sofort beenden | | Remove | Löschen | | Logs | Logs anzeigen | | Console | Shell öffnen | | Inspect | Details anzeigen |
Container-Logs
Containers → Container auswählen → Logs
- Auto-refresh aktivieren
- Nach Zeitraum filtern
- Download als Datei
Console (Shell)
Containers → Container auswählen → Console → Connect
Öffnet eine Shell im Container.
Stacks (Docker Compose)
Stack erstellen
1. Stacks → Add stack 2. Name eingeben 3. Compose-Datei einfügen oder hochladen 4. Environment-Variablen hinzufügen 5. Deploy the stack
Beispiel: WordPress Stack
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db
db:
image: mysql:8
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:Environment-Variablen in Portainer setzen:
- DB_PASSWORD: sicheres_passwort
- ROOT_PASSWORD: root_passwort
Stack aktualisieren
Stack auswählen → Editor → Änderungen → Update the stack
Images verwalten
Image herunterladen
Images → Pull image
- Image-Name eingeben (z.B. nginx:alpine)
- Pull the image
Images aufräumen
Images → Unused images markieren → Remove
Image bauen
Images → Build image
- Dockerfile hochladen
- Build starten
Volumes verwalten
Volume erstellen
Volumes → Add volume
- Name eingeben
- Driver wählen (local)
- Create the volume
Volume inspizieren
Volume auswählen → Browse
Zeigt Dateien im Volume (mit Browser-Extension).
Netzwerke
Netzwerk erstellen
Networks → Add network
- Name
- Driver (bridge, overlay)
- Subnet (optional)
- Gateway (optional)
Container verbinden
Container → Network → Join network
App Templates
Portainer bietet vorgefertigte Templates:
1. App Templates 2. Template auswählen (WordPress, GitLab, etc.) 3. Konfigurieren 4. Deploy
Custom Templates
Settings → App Templates → Add template
Eigene Docker Compose Templates speichern.
Mehrere Hosts verwalten
Remote Docker Host
1. Environments → Add environment 2. Docker (API) wählen 3. Name und URL eingeben 4. TLS konfigurieren (empfohlen)
Agent-Installation (empfohlen)
Auf dem Remote-Host:
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:latestIn Portainer:
- Environments → Add environment
- Agent auswählen
- IP:9001 eingeben
Benutzer und Teams
Benutzer erstellen
Settings → Users → Add user
Teams
Settings → Teams → Add team
Berechtigungen
- Endpoint-Zugriff beschränken
- Team-basierte Rechte
Registries
Docker Hub (privat)
Settings → Registries → Add registry
- Docker Hub
- Username und Token eingeben
Eigene Registry
- Custom registry
- URL eingeben
- Credentials (falls nötig)
Updates
Portainer aktualisieren
# Container stoppen und entfernen
docker stop portainer
docker rm portainer
# Neues Image
docker pull portainer/portainer-ce:latest
# Neu starten (Volume bleibt)
docker run -d \
--name portainer \
--restart=always \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latestSicherheit
Hinter Reverse Proxy
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;
}
}Nur localhost
docker run -d \
--name portainer \
-p 127.0.0.1:9443:9443 \
...Zugriff dann über SSH-Tunnel.
Troubleshooting
Portainer nicht erreichbar
# Container läuft?
docker ps | grep portainer
# Logs prüfen
docker logs portainerDocker Socket-Probleme
# Socket vorhanden?
ls -la /var/run/docker.sock
# Rechte prüfen
sudo chmod 666 /var/run/docker.sockFazit
Portainer ist ideal für Docker-Einsteiger und für schnelle Übersichten. Die Web-Oberfläche macht Container-Verwaltung intuitiv. Für Profis bleibt die Kommandozeile schneller, aber Portainer ergänzt sie gut.