Servery a DevOps

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.

12. 10. 2026 · 4 min čtení

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 9443 je webové rozhraní přes HTTPS (s self-signed certifikátem).
  • Mount /var/run/docker.sock dává Portaineru plnou kontrolu nad Dockerem.
  • Volume portainer_data uchovává nastavení a uživatele.
  • Tag lts označ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:

  1. Web editor – vložíte obsah compose.yaml přímo do prohlížeče.
  2. Upload – nahrajete soubor.
  3. 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/sh nebo /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é.