Portainer: webové rozhraní pro správu Dockeru na VPS
Instalace Portainer CE na VPS, bezpečný přístup přes HTTPS a SSH tunel, správa kontejnerů a stacků z Compose, logy a konzole. Plus kdy Portainer nepoužívat.
Portainer je webové rozhraní pro Docker. Místo psaní příkazů vidíte kontejnery, image, volumes a sítě v prohlížeči, můžete číst logy, restartovat služby nebo nasadit Compose stack. Hodí se pro menší servery, kde chcete rychlý přehled, i pro kolegy, kteří s terminálem nepracují denně.
Co Portainer umí
- přehled kontejnerů, jejich stav, využití CPU/RAM,
- logy a interaktivní konzole kontejneru v prohlížeči,
- start, stop, restart, smazání, duplikace kontejneru,
- stacky – nasazení a úprava Docker Compose souborů přes web (i z Git repozitáře),
- správa image, volumes, sítí,
- správa více serverů (prostředí) z jednoho místa,
- uživatelé a týmy s oprávněními.
Existuje bezplatná Community Edition (CE) a placená Business Edition. Pro jeden či pár serverů stačí CE.
Instalace
Předpokladem je nainstalovaný Docker. Portainer sám běží jako kontejner:
docker volume create portainer_data
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:lts
- Port
9443je webové rozhraní přes HTTPS (s self-signed certifikátem). - Mount
/var/run/docker.sockdává Portaineru plnou kontrolu nad Dockerem. - Volume
portainer_datauchovává nastavení a uživatele. - Tag
ltsoznačuje větev s dlouhodobou podporou; konkrétní verzi si můžete připnout podle Docker Hubu.
V oficiálních návodech uvidíte i -p 8000:8000 – tento port slouží jen pro Edge agenty a pro běžné použití ho nepotřebujete.
Totéž jako Compose:
services:
portainer:
image: portainer/portainer-ce:lts
restart: always
ports:
- "127.0.0.1:9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
První přihlášení – pozor na časový limit
Otevřete https://IP-serveru:9443, prohlížeč upozorní na self-signed certifikát. Vytvořte administrátorský účet se silným heslem.
Portainer z bezpečnostních důvodů čeká na vytvoření admina jen několik minut po startu. Pokud to nestihnete, uvidíte hlášku o vypršení a stačí kontejner restartovat:
docker restart portainer
Poté zvolte prostředí Local (Docker na tomto stroji).
Bezpečnost: nenechávejte Portainer veřejně
Kdo se dostane do Portaineru, ovládá všechny kontejnery a přes ně v podstatě celý server. Proto:
Varianta A – jen přes SSH tunel (nejbezpečnější). Port publikujte jen na 127.0.0.1 (jako v Compose výše) a připojujte se tunelem:
ssh -L 9443:127.0.0.1:9443 [email protected]
Pak otevřete https://localhost:9443 na svém počítači.
Varianta B – za reverzní proxy s HTTPS. Nginx s certifikátem z Let’s Encrypt a ideálně omezením na vaše IP adresy:
server {
server_name portainer.example.cz;
allow 203.0.113.10; # vaše IP
deny all;
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;
}
}
Hlavičky Upgrade/Connection jsou nutné pro konzoli kontejneru, která používá WebSockety.
Připomínka: porty publikované Dockerem obcházejí UFW. Port 9443 publikovaný na 0.0.0.0 bude dostupný z internetu, i když ho ve firewallu nepovolíte.
Stacky: Compose přes web
V menu Stacks → Add stack máte tři možnosti:
- Web editor – vložíte obsah
compose.yamlpřímo do prohlížeče. - Upload – nahrajete soubor.
- Repository – Portainer si Compose soubor stáhne z Git repozitáře (pro soukromé repo zadáte přístupový token). Lze zapnout automatickou aktualizaci periodicky nebo přes webhook.
Proměnné prostředí (hesla) se zadávají v sekci Environment variables pod editorem, ne natvrdo do YAML.
Upozornění: stack vytvořený v Portaineru byste měli dál spravovat v Portaineru. Pokud ho upravíte ručně přes docker compose v terminálu, Portainer o změnách neví a může je při další úpravě přepsat.
Každodenní práce
- Logy: Containers → název → Logs. Lze filtrovat a zapnout automatické obnovování.
- Konzole: Console → zvolte
/bin/shnebo/bin/bash→ Connect. - Statistiky: Stats ukazuje živé využití CPU, paměti a sítě.
- Aktualizace image: u kontejneru Recreate se zaškrtnutým Re-pull image, u stacku Pull and redeploy.
- Úklid: v sekci Images a Volumes uvidíte nepoužívané položky označené jako Unused.
Aktualizace Portaineru
docker pull portainer/portainer-ce:lts
docker stop portainer && docker rm portainer
# spusťte znovu stejný docker run příkaz jako při instalaci
Data zůstávají ve volume portainer_data. Před větším upgradem si volume zazálohujte.
Kdy Portainer (ne)použít
| Hodí se | Spíš ne |
|---|---|
| rychlý přehled o kontejnerech | jediný způsob správy produkce bez verzování konfigurace |
| správa pro méně technické kolegy | když vše nasazujete přes CI/CD z Gitu |
| ladění – logy a konzole na pár kliknutí | velmi slabý VPS (Portainer zabere nějakou RAM) |
Dobrá praxe: Compose soubory držte v Gitu a Portainer používejte hlavně pro přehled a diagnostiku. Odkud se konfigurace nasazuje, by mělo být jednoznačné.