Implementacija Portainera CE u Dockeru za upravljanje kontejnerima
Razina: Početnik
Vrijeme potrebno za dovršetak: ~30 minuta
Cilj: Nakon dovršetka ovog vodiča imat ćete potpuno konfiguriranu Portainer CE nadzornu ploču zaštićenu HTTPS-om i spremnu za upravljanje Docker infrastrukturom vašeg poslužitelja. Nakon dovršetka ovog vodiča imat ćete potpuno konfiguriranu Portainer CE nadzornu ploču zaštićenu HTTPS-om i spremnu za upravljanje Docker infrastrukturom vašeg poslužitelja.
Uvod
Kontejnerizacija temeljena na Dockeru postala je standard za poslužiteljsku infrastrukturu, osiguravajući predvidljivu implementaciju i učinkovito skaliranje usluga. Međutim, pri pokretanju desetaka kontejnera, njihovo upravljanje isključivo putem naredbenog retka postaje nezgrapno. Portainer CE rješava taj problem pružajući korisnički prilagođeno web sučelje za administraciju Dockera: omogućuje pristup svim spremnicima, njihovim statusima, zapisima i resursima, a upravljanje se obavlja u nekoliko klikova bez gubitka kontrole nad sustavom.
Priprema poslužitelja
Prije instalacije potrebno je osigurati da je poslužitelj spreman za implementaciju Portainera. Sam Portainer radi kao spremnik, stoga je potrebno instalirati samo Docker.
Sistemski zahtjevi:
- Operativni sustav: Bilo koja Linux distribucija (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+) koja se koristi za hosting.
- Privilegiji: root pristup ili mogućnost izvršavanja naredbi putem sudo-a.
- Hardverski zahtjevi: Minimalno 1 GB RAM-a i 10 GB slobodnog prostora na disku.
- Mrežni zahtjevi: Otvoreni portovi 8000 i 9443 za pristup Portaineru, port 443 za konfiguraciju obrnutog proxyja.
Provjera dostupnosti Dockera
Povežite se na poslužitelj putem SSH-a. Prije svega, provjerite je li Docker instaliran i radi li demon:
docker --version sudo systemctl status docker
Ako se prikazuje verzija Dockera i status je aktivan (radi), korak instalacije Dockera može se preskočiti.
Instalacija Dockera (ako je potrebno)
Na novim poslužiteljima Docker obično nije instaliran. Da biste ga instalirali, pokrenite standardnu skriptu (za Debian/Ubuntu):
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker
Za instalaciju Docker Compose dodatka (ako nije instaliran u prethodnom koraku), pokrenite:
sudo apt-get install docker-compose-plugin # For Debian/Ubuntu # or sudo dnf install docker-compose-plugin # For CentOS/Rocky Linux
Provjerite verziju instaliranog docker composea:
docker compose version
Deployiranje Portainera CE u Dockeru
Postoje dva glavna načina za pokretanje Portainera: putem naredbe docker run (brzi početak) i putem datoteke docker-compose.yml (praktično za verzioniranje konfiguracije).
Metoda 1: Pokretanje putem naredbe docker run
Pokrenite sljedeću naredbu na poslužitelju:
sudo docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
Naredba se pokreće putem sudo-a jer trenutni korisnik još nije dodan u grupu docker. Ako planirate kasnije koristiti docker bez sudo-a, dodajte korisnika u grupu docker:
sudo usermod -aG docker $USER
Nakon izvršavanja naredbe, potrebno je odjaviti se i ponovno prijaviti ili ponovno pokrenuti sesiju.
Objašnjenje parametara:
- -d – Pokrenite spremnik u pozadini.
- -p 8000:8000 – Usmjeravanje porta za Edge agente i tunele.
- -p 9443:9443 – Usmjeravanje porta za zaštićeno web sučelje (HTTPS). Portainer automatski generira samopotpisani SSL certifikat.
- --name portainer – Dodjeljuje smislen naziv spremniku.
- --restart=always – Pravilo automatskog ponovnog pokretanja kontejnera u slučaju kvara ili ponovnog pokretanja poslužitelja.
- -v /var/run/docker.sock:/var/run/docker.sock – Montira Docker soket unutar Portainer kontejnera. To omogućuje Portaineru interakciju s Docker demonom i njegovo upravljanje na hostu.
- -v portainer_data:/data – Stvara nazvan volumen za pohranu Portainer podataka (korisnici, postavke, konfiguracije veza).
- portainer/portainer-ce:latest – Slika s najnovijom stabilnom verzijom Community Editiona.
Metoda 2: Pokretanje putem docker-compose
Da biste koristili ovu metodu, stvorite direktorij i datoteku docker-compose.yml:
mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml
Umetnite sljedeći sadržaj:
services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "8000:8000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:
Spremite datoteku i pokrenite naredbu:
docker compose up -d
Prvo pokretanje i postavljanje web sučelja
Nakon što se kontejner Portainera pokrene, postaje dostupan putem mreže.
Korak 1. Povezivanje na web sučelje
Otvorite preglednik i idite na:
Zbog upotrebe samopotpisanog certifikata, preglednik će prikazati upozorenje. To je normalno pri prvom pokretanju. Morate nastaviti na stranicu (na primjer, kliknite "Prihvati rizik" ili "Nastavi na stranicu").
Zbog upotrebe samopotpisanog certifikata, preglednik će prikazati upozorenje. Morate nastaviti na stranicu.

Korak 2. Kreiranje korisnika
Na stranici za registraciju morat ćete navesti korisničko ime (preporučuje se admin) i postaviti jaku lozinku.
Lozinka mora biti složena jer omogućuje potpuni pristup upravljanju spremnicima.
Korak 3. Povezivanje okruženja
Nakon stvaranja korisnika, Portainer će vas uputiti da povežete okruženja. U ovoj fazi možete povezati lokalni Docker (koji je već dostupan zahvaljujući montiranom soketu) ili nastaviti s dodavanjem udaljenih okruženja putem gumba "Dodaj okruženja" (Add Environments).
Daljinska okruženja korisna su kada trebate upravljati više poslužitelja s jedinstvenog Portainer sučelja: na primjer, dodavanjem Docker hostova u različitim podatkovnim centrima ili poslužiteljima s Kubernetesom. Povezivanje se vrši putem Portainer agenata ili putem API-ja koristeći TLS certifikate.
- Odaberite opciju "Get Started". Ovo je osnovni scenarij za jedan poslužitelj.
- Portainer će automatski otkriti lokalni Docker soket. Bit će prikazan kao "lokalni".
- Kliknite na njega kako biste dovršili postavljanje.


Postavljanje je dovršeno. Otvorit će se nadzorna ploča Portainera (glavni zaslon) s kratkim statistikama o spremnicima, slikama, volumenima i mrežama.

Glavne značajke Portainera
Pogledajmo glavne odjeljke sučelja koji se koriste za svakodnevne administrativne zadatke.
Nadzorna ploča
Početni zaslon koji prikazuje cjelokupnu sliku: broj pokrenutih i zaustavljenih kontejnera, broj preuzetih slika. Omogućuje brzu procjenu stanja poslužitelja.
Kontejneri
- Središnji odjeljak za upravljanje. Prikazuje popis svih kontejnera.
- Upravljanje spremnicima: Pokreni, zaustavi, ponovno pokreni, izbriši spremnik jednim klikom.
- Zapisnici: kartica "Zapisnici" omogućuje pregled zapisnika spremnika u stvarnom vremenu.
- Inspekcija: Prikazuje potpune informacije o spremniku u JSON formatu: varijable okruženja, točke montiranja, mrežne postavke.
- Statistike: Grafički prikaz potrošnje CPU-a, memorije i mreže za svaki spremnik. Pomaže u određivanju potrošnje resursa pojedinih usluga.
- Konzola za izvršavanje: Mogućnost otvaranja web terminala unutar kontejnera za izvršavanje naredbi.
Stackovi
Implementacija Docker Composea u web sučelju. Omogućuje učitavanje ili izradu YAML datoteka izravno putem preglednika za postavljanje aplikacija s više kontejnera.
Slike
- Upravljanje Docker slikama.
- Pull: Mogućnost preuzimanja slika (npr. nginx:latest ili mysql:8.0) izravno iz sučelja.
- Ukloni: Čišćenje neiskorištenih slika za oslobađanje prostora na disku.
Volumeni
Upravljanje trajnim volumenima podataka. Prikazuje postojeće volume, njihovo povezivanje s kontejnerima i prostor koji zauzimaju. Izuzetno važno za baze podataka i korisničke podatke.
Mreže
Omogućuje stvaranje izoliranih mreža za interakciju s kontejnerima.
Povrat promjena (uklanjanje Portainera)
Ako trebate potpuno ukloniti Portainer i njegove podatke sa poslužitelja, slijedite ove korake:
1. Zaustavite i uklonite spremnik Portainer:
sudo docker stop portainer sudo docker rm portainer
2. Uklonite volumen podataka Portainera (upozorenje: ova je radnja nepovratna):
sudo docker volume rm portainer_data
Brisanje volumena portainer_data dovest će do nepovratnog gubitka svih korisnika, postavki i konfiguracija Portainera.
3. Uklonite Portainer sliku (po želji):
sudo docker rmi portainer/portainer-ce:latest
Sigurnost i preporuke
Za produkcijsko okruženje potrebna je dodatna sigurnosna konfiguracija Portainera.
Korištenje obrnutog posrednika (Nginx/Apache)
Preporučuje se postaviti poddomenu (npr. portainer.domain.com) i proxy promet putem Nginxa. To će osigurati:
- Korištenje važećeg SSL certifikata (besplatnog od Let's Encrypt ili plaćenog SSL-a, npr. od Sectiga).
- Centralizirano evidentiranje pristupa.
- Mogućnost konfiguriranja dodatne autentifikacije.
1. Instalacija i konfiguracija Nginxa
Instalirajte Nginx:
sudo apt install -y nginx # For Debian/Ubuntu # or sudo dnf install -y nginx # For CentOS/Rocky Linux
Kreirajte konfiguracijsku datoteku za Portainer:
sudo nano /etc/nginx/sites-available/portainer.conf
Dodajte sljedeću konfiguraciju, zamijenite
server { listen 80; server_name <YOUR_DOMAIN>; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Timeouts for long operations proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }
Aktivirajte konfiguraciju:
sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/
Provjerite konfiguraciju Nginxa:
sudo nginx -t
Ako je provjera uspješna, ponovno pokrenite Nginx:
sudo systemctl restart nginx
2. Postavljanje HTTPS-a (preporučeno)
Instalirajte Certbot:
sudo apt install -y certbot python3-certbot-nginx
Pribavite SSL certifikat:
sudo certbot --nginx -d <your_domain></your_domain>
Zamijenite
Tijekom instalacije unesite svoju e-poštu, na primjer, admin@
Provjerite automatsko obnavljanje certifikata:
sudo systemctl list-timers | grep certbot
Konfiguracija vatrozida
Izravan pristup portovima Portainera treba ograničiti. Dozvolite pristup portovima 8000 i 9443 samo s pouzdanih IP adresa.
Budite oprezni s pravilima vatrozida. Neispravna konfiguracija može blokirati vaš pristup poslužitelju.
Primjer za UFW:
sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443
Gdje je 192.168.1.0/24 podmreža pouzdanih IP adresa.
Redovita ažuriranja
Preporučuje se pratiti objavu novih verzija Portainera i pravovremeno ažurirati spremnik kako bi se uklonile potencijalne ranjivosti.
Provjera rada
Da biste provjerili radi li Portainer ispravno, izvršite sljedeće korake.
- Vizualna provjera: U odjeljku "Containers" provjerite da kontejner portainer ima status "running".
- Izrada testnog kontejnera:
- Idite u odjeljak "Containers", kliknite gumb "Add container".
- U polje "Name" unesite test-nginx.
- U polju "Image" navedite nginx:alpine.
- U odjeljku "Mapiranje priključaka" navedite host-priključak 8080 i kontejnerski priključak 80.
- Kliknite "Deploy the container".
- Provjera pristupačnosti:
- Pričekajte da se spremnik pojavi na popisu sa statusom 'trči'.
- Otvorite preglednik i idite na http://<VAŠA_IP_ADRESA>:8080. Trebala bi se prikazati Nginx početna stranica.
- Provjera upravljanja:
- U Portaineru pronađite spremnik test-nginx i kliknite gumb "Stop".
- Osvježite Nginx stranicu u pregledniku – pristup bi trebao biti nedostupan.
- Kliknite "Start" – pristup stranici bi trebao biti ponovno uspostavljen.
Rješavanje problema
Problem 1: Ne može se otvoriti Portainer web sučelje na https://:9443
Mogući uzrok: Vatrozid blokira port 9443.
Rješenje: Provjerite pravila vatrozida i uvjerite se da je port otvoren. Za UFW: sudo ufw status | grep 9443.
Problem 2: Greška "Ne može se povezati s Docker demonom" pri izvođenju Docker naredbi.
Mogući uzrok: Docker demoni ne radi ili korisnik nema dozvole.
Rješenje: Pokrenite demon: sudo systemctl start docker. Ako ste dodali korisnika u grupu docker, odjavite se i ponovno se prijavite.
Problem 3: Kontejner Portainer se ne pokreće i odmah izlazi (status exited).
Mogući uzrok: sukob portova ili oštećena slika.
Rješenje: Provjerite je li port 9443 zauzet drugom aplikacijom: sudo ss -tulpn | grep 9443. Pokušajte dodijeliti drugi port i ponovno pokrenuti spremnik: sudo docker restart portainer.
Zaključak
Portainer CE pruža učinkovit alat za vizualno nadgledanje i upravljanje Docker spremnicima. Mogućnost brzog procjenjivanja statusa spremnika, analize grafikona potrošnje resursa i izvođenja uobičajenih operacija bez povezivanja putem SSH-a smanjuje vrijeme odgovora na incidente i pojednostavljuje svakodnevnu administraciju.
Ovaj alat može biti koristan kada je potrebno omogućiti ograničen pristup upravljanju kontejnerima programerima ili manje iskusnom osoblju, a da im se ne odobri izravan pristup naredbenom retku poslužitelja. Portainer CE standardno je rješenje za vizualizaciju infrastrukture kontejnera i preporučuje se za upotrebu na poslužiteljima.
---
Verzija dokumenta: 1 .1
Zadnje ažuriranje: ožujak 2026.
Vlasnik: Tim zatehničku dokumentaciju