# 🖥️ Portainer: Jak jednoduše spravovat Docker kontejnery přes webové rozhraní 👉 [[1.1.1 O projektu]] 👉 [[1.1.2 Vlastní digitální svět (přehled článků)]] ![[image_portainer.png]] --- ## 📜 Licence a cena | Aspekt | Detail | |--------|--------| | **Licence** | Zlib (Community Edition) | | **Self-hosting** | ✅ Ano, CE je zdarma bez omezení | | **Business Edition** | Placená verze s enterprise funkcemi | | **Cloud verze** | ❌ Pouze self-hosted | | **Zdrojový kód** | [github.com/portainer/portainer](https://github.com/portainer/portainer) | > Portainer Community Edition je **open-source pod Zlib licencí** – velmi permisivní, podobná MIT. Můžete ho používat kdekoliv bez omezení. Business Edition přidává RBAC, registry management a enterprise support. ### Co je v CE vs Business Edition | Funkce | CE (zdarma) | Business | |--------|-------------|----------| | Správa kontejnerů | ✅ | ✅ | | Docker Compose | ✅ | ✅ | | Základní RBAC | ✅ | ✅ | | Pokročilé RBAC | ❌ | ✅ | | Registry management | ❌ | ✅ | | GitOps (auto-update) | ❌ | ✅ | | Enterprise support | ❌ | ✅ | --- ## 📌 Úvod: Proč používat Portainer? Docker se dá spravovat z terminálu, ale někdy je praktičtější mít **vizuální rozhraní**. [Portainer.io](https://www.portainer.io/) umožňuje: - ✅ Snadnou správu kontejnerů bez psaní příkazů. - ✅ Nasazování nových služeb přímo z webového panelu. - ✅ Monitorování běžících kontejnerů, jejich výkonu a logů. Tento článek vás provede **instalací a základní konfigurací Portaineru**, přičemž se **zaměříme na přístup přes IP adresu a porty** – což je ideální pro lokální prostředí. > **🔜 V dalším díle:** Pokud budete chtít přístup přes doménu, ukážeme si nasazení **Traefik** jako reverzní proxy. --- ## 🚀 Instalace Portaineru v Dockeru Spuštění Portaineru v samostatném kontejneru s definovanou sítí `digilifehub_network`: ```sh docker network create digilifehub_network docker run -d --name=portainer \ --network=digilifehub_network \ -p 9000:9000 \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest ``` ### 🛠️ Vysvětlení parametrů: - `--network=digilifehub_network` – Použití jednotné sítě pro všechny služby v tomto seriálu. - `-p 9000:9000` – Přístup přes **nešifrovaný HTTP** (doporučeno pro lokální instalaci). - `-v /var/run/docker.sock:/var/run/docker.sock` – Přístup ke kontejnerům. - `-v portainer_data:/data` – Uchování konfigurace i po restartu. --- ## 🔑 První spuštění a přístup k Portaineru Po instalaci přejděte na **`http://IP_ADRESA:9000`** **Pokud nevíte IP adresu vašeho serveru:** - **Linux/macOS:** `hostname -I` - **Windows (PowerShell):** `ipconfig` 1️⃣ **Přihlášení:** Vytvořte **admin účet**. 2️⃣ **Přidání Docker prostředí:** Zvolte **"Local Docker Environment"**. --- ## 📋 Základní funkce Portaineru ✅ **Dashboard:** Přehled všech běžících kontejnerů. ✅ **Správa kontejnerů:** Start, stop, restart, mazání. ✅ **Docker Compose:** Nasazování aplikací z `docker-compose.yml`. ✅ **Správa sítí a volume:** Jak propojit kontejnery mezi sebou. --- ## 🏗️ Praktická ukázka: Nasazení aplikace přes Portainer ### 🌍 Nasazení jednoduché aplikace (WordPress) 1. V Portaineru přejděte na **Containers → Add container**. 2. Zadejte název kontejneru (např. `my-wordpress`). 3. Do pole **Image** vložte: ``` wordpress:latest ``` 4. Klikněte na **Publish a new network port**, nastavte `80:80`. 5. Klikněte na **Deploy the container**. ✅ **Aplikace je nyní dostupná na `http://IP_ADRESA:80`**. --- ## 🛠️ Alternativa: Spuštění Portaineru pomocí `docker-compose.yml` Pokud chcete Portainer spravovat přes **Docker Compose**, použijte tento soubor: ```yaml version: '3.8' services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always networks: - digilifehub_network ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data networks: digilifehub_network: external: true volumes: portainer_data: ``` ### 📌 Spuštění příkazem: ```sh docker-compose up -d ``` **Další užitečné příkazy:** - **Ověření běžících kontejnerů:** ```sh docker-compose ps ``` - **Zastavení Portaineru:** ```sh docker-compose down ``` - **Úplné odstranění Portaineru včetně dat:** ```sh docker-compose down -v ``` --- ## 🔒 Přístup přes HTTPS (volitelné) Pokud potřebujete **zabezpečený přístup přes HTTPS**, použijte místo toho **port 9443**: ```sh docker run -d --name=portainer \ --network=digilifehub_network \ -p 9443:9443 \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest ``` 🔹 **Pozor:** Pokud se připojíte na `https://IP_ADRESA:9443`, váš prohlížeč zobrazí **varování o neplatném certifikátu**. Stačí ho **ručně potvrdit** a pokračovat dál. --- ## 📢 Kdy budete potřebovat reverzní proxy? Pokud používáte Portainer **v lokální síti nebo svém PC pro testování**, přístup přes IP adresu bez HTTPS je pohodlnější. Jestli chcete zabezpečený přístup nebo **vystavit aplikace do internetu, používejte vždy HTTPS přístup!** Pro **přístup přes doménu, HTTPS a subdomény**, budete potřebovat **Traefik**, který probereme v dalším článku. --- ## 💡 Praktické použití ### Use case 1: Správa home serveru pro rodinu **Situace:** Máte doma Raspberry Pi nebo starý notebook jako server. Běží na něm Plex, Home Assistant, Pi-hole. Manželka/děti chtějí někdy restartovat službu, ale neumí terminál. **Řešení s Portainer:** - **Dashboard:** Přehled všech běžících služeb na jednom místě - **Jednoduché ovládání:** Start/stop/restart jedním kliknutím - **Logy:** Když něco nefunguje, snadno zjistíte proč - **Uživatelé:** Vytvoříte účet pro rodinu s omezenými právy - **Mobilní přístup:** Webové rozhraní funguje i na telefonu **Výsledek:** Rodina může spravovat služby bez vašeho zásahu. ### Use case 2: Vývojové prostředí pro malý tým **Situace:** Tým 3-5 vývojářů sdílí dev server. Každý potřebuje spouštět vlastní kontejnery, ale nechcete, aby si navzájem mazali služby. **Řešení s Portainer:** - **Týmy:** Každý vývojář má vlastní "environment" - **Izolace:** Vývojář vidí jen své kontejnery - **Templates:** Předpřipravené stack šablony (např. LAMP, MEAN) - **Resource limits:** Omezení RAM/CPU per tým - **Audit:** Kdo co kdy spustil nebo smazal **Výsledek:** Sdílený server bez konfliktů a "kdo mi smazal databázi?". ### Use case 3: Klient-facing demo prostředí **Situace:** Agentura potřebuje ukázat klientům rozpracované projekty. Každý klient má vlastní instanci aplikace. **Řešení s Portainer:** - **Stacks:** Jeden stack = jeden klient (app + db + redis) - **Quick deploy:** Nový klient = deploy stacku z template - **Subdomény:** `klient1.demo.agentura.cz`, `klient2.demo.agentura.cz` - **Cleanup:** Po schválení projektu jednoduché smazání stacku - **Snapshots:** Záloha stavu pro pozdější reference **Výsledek:** Profesionální demo prostředí bez DevOps overhead. ### Use case 4: Monitoring a troubleshooting produkce **Situace:** Máte 20+ kontejnerů v produkci. Něco začne padat, potřebujete rychle zjistit co. **Řešení s Portainer:** - **Health status:** Zelená/červená indikace stavu kontejnerů - **Real-time logs:** Živé logy bez SSH přístupu - **Console:** Přímý shell do kontejneru pro debugging - **Stats:** CPU, RAM, network per kontejner - **Events:** Timeline co se kdy stalo (restart, OOM kill...) **Výsledek:** Rychlejší incident response, méně stresu při 3AM alertu. ### Use case 5: Učení Dockeru pro začátečníky **Situace:** Učíte se Docker, ale příkazy v terminálu jsou matoucí. Nevíte, co vlastně běží a jak to souvisí. **Řešení s Portainer:** - **Vizualizace:** Vidíte kontejnery, images, volumes, networks - **Experimenty:** Spusťte kontejner, podívejte se dovnitř, smažte ho - **Inspect:** JSON konfigurace kontejneru pro pochopení - **Učení:** Portainer ukáže, jaký příkaz by se spustil - **Bezpečí:** Těžší udělat nevratnou chybu než v terminálu **Výsledek:** Rychlejší pochopení Docker konceptů. --- ## 🆚 Portainer vs alternativy | Nástroj | Licence | Kubernetes | UI/UX | |---------|---------|------------|-------| | **Portainer CE** | Zlib | ✅ | ⭐⭐⭐⭐⭐ | | **Yacht** | MIT | ❌ | ⭐⭐⭐⭐ | | **Lazydocker** | MIT | ❌ | ⭐⭐⭐ (TUI) | | **Rancher** | Apache 2.0 | ✅ | ⭐⭐⭐⭐ | | **Docker Desktop** | Proprietary | ✅ | ⭐⭐⭐⭐ | > **Portainer** je nejlepší volba pro začátečníky i pokročilé. Yacht je jednodušší alternativa, Lazydocker pro terminálové puristy, Rancher pro Kubernetes-heavy prostředí. --- ## 🏁 Závěr a další kroky - ✅ **Portainer umožňuje vizuální správu Docker kontejnerů.** - ✅ **Zlib licence – plně open-source, Community Edition zdarma bez omezení.** - ✅ **Tento návod ukazuje přístup přes HTTP (port 9000) jako nejjednodušší variantu pro lokální testování.** - ✅ **Síť `digilifehub_network` je nyní standardem pro všechny kontejnery v tomto seriálu.** 👉 **Používáte Portainer, nebo preferujete čistě terminál?** 🚀 --- ### ⏪ Související články ⏩ > **🔙 Předchozí článek:** > [[2025-01-30 Úvod do práce s Dockerem|Úvod do práce s Dockerem]] > > **🔜 Následující článek:** > [[2025-02-06 Traefik (Reverzní proxy pro Docker – správa subdomén a HTTPS)|Traefik (reverzní proxy)]] #docker #portainer #osobniDigitalizace #digilifehub