Skip to main content

Instalace Portaineru NEW

Tady máš CELÝ POSTUP OD NULY, přesně tak, jak chceš:

  • ✔ Portainer instalovaný jako stack přes YML

  • VŠECHNO v /opt/stack/

  • file-based stack (Portainer YAML nevlastní)

  • aktualizace / reinstalace Portaineru = BEZ LIMITED

  • ✔ odpovídá tomu, co chceš dlouhodobě provozovat

Žádné alternativy, žádné teorie. Toto je správný a bezpečný způsob.


🎯 CÍLOVÝ STAV


/opt/stack/ ├── portainer/ │ └── docker-compose.yml ├── portainer-data/ └── (ostatní stacky později stejným stylem)

0️⃣ PŘEDPOKLADY

  • Docker už máš

  • Používáš docker compose plugin (docker compose)

  • Vše děláš jako root nebo přes sudo

Ověření (jen pro klid):


docker --version docker compose version

1️⃣ VYTVOŘ STRUKTURU (POVINNÉ)


mkdir -p /opt/stack/portainer mkdir -p /opt/stack/portainer-data

📌 DŮLEŽITÉ

  • portainer-data je perzistence

  • nikdy nepoužívej Docker volume typu portainer_data

  • jen bind mount do /opt


2️⃣ VYTVOŘ YML PRO PORTAINER (FILE-BASED STACK)

Soubor:


nano /opt/stack/portainer/docker-compose.yml

Obsah VLOŽ DOSLOVA:


version: "3.8" services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped ports: - "9000:9000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/stack/portainer-data:/data

✔ YAML je soubor na disku
✔ Portainer ho nikdy nebude ukládat do DB
✔ upgrade-safe


3️⃣ NASAZENÍ STACKU (RUČNĚ, BEZ UI)

⚠️ Tohle je záměr – první start vždy ručně.


cd /opt/stack/portainer docker compose up -d

Ověření:


docker ps | grep portainer

4️⃣ PRVNÍ PŘIHLÁŠENÍ DO PORTAINERU (KRITICKÉ)

Otevři v prohlížeči:


https://IP_SERVERU:9443

Nastav:

  • vytvoř JEDEN admin účet

  • neměň ho

  • nemaž

  • žádní další uživatelé (pokud nejsou nutní)

📌 RBAC změny = častý zdroj LIMITED


5️⃣ JAK TENHLE STACK ZAREGISTRUJEŠ DO PORTAINERU (SPRÁVNĚ)

Teď to důležité.

V Portainer UI:

  1. Stacks → Add stack

  2. Build method: File upload / Path

  3. NE web editor

  4. Zadej cestu k souboru:


/opt/stack/portainer/docker-compose.yml
  1. Deploy

📌 Portainer:

  • uloží si jen cestu

  • NEOBSAH YML

  • nevznikne LIMITED

  • upgrade je bezpečný


6️⃣ AKTUALIZACE PORTAINERU (BEZ RIZIKA)

Kdykoliv později:


cd /opt/stack/portainer docker compose pull docker compose up -d

➡️ NIC jiného se nedotkne
➡️ ŽÁDNÝ stack se nepřepne do LIMITED


7️⃣ REINSTALACE PORTAINERU (NUCLEAR SAFE)

Když se cokoliv posere:


docker stop portainer docker rm portainer

Stacky mimo Portainer běží dál

Pak znovu:


cd /opt/stack/portainer docker compose up -d

A v Portainer UI:

  • znovu Stacks → Add stack

  • znovu Path

  • stejný soubor

  • hotovo


8️⃣ PRAVIDLA, KTERÁ NESMÍŠ PORUŠIT (DŮLEŽITÉ)

❌ nepoužívej Web editor
❌ nepoužívej Git stack
❌ nekopíruj YML do UI
❌ neupravuj stack v Portaineru

✔ YML VŽDY upravuj v:


/opt/stack/<nazev>/docker-compose.yml

✔ Pak:


docker compose up -d

nebo Redeploy (file-based je OK)


🧠 PROČ TOHLE FUNGUJE (STRUČNĚ)

  • Portainer nevlastní YAML

  • nemá co porovnávat při upgradu

  • nemá co označit jako „externí“

  • ownership zůstává konzistentní

  • LIMITED NEMÁ JAK VZNIKNOUT


✅ FINÁLNÍ CHECKLIST

/opt/stack/portainer/docker-compose.yml existuje
✔ Portainer stack je file-based
✔ Data jsou v /opt/stack/portainer-data
✔ Žádné Docker volume
✔ Jeden admin
✔ Žádný Web editor

➡️ MÁŠ HOTOVO A BEZPEČNO