Instalacija Dockera na popularnim Linux distribucijama: vodič za instalaciju Dockera na Linuxu
Razina: Srednja
Procijenjeno vrijeme: ~15 minuta
Cilj: Konfigurirati siguran, decentraliziran okoliš instalacijom Dockera za samostalno hostanje osobnih usluga poput Nextclouda, Bitwardena i Matrixa.
Uvod
Hostanje vlastitih »cloud« usluga jamči privatnost i potpuno vlasništvo nad podacima. Za implementaciju usluga kao što su Nextcloud (pohrana datoteka), Bitwarden (upravljanje lozinkama) ili Matrix (sigurna komunikacija) bez suočavanja sa složenim ovisnostima na razini hosta potrebna su izolirana okruženja. U ovom ćemo vodiču prikazati kako instalirati Docker na Linux i izgraditi robustan, ponovljiv temelj za samostalno hostanje. Trebate li potpunu postavu Dockera na Linuxu za jedan poslužitelj ili za cijelu flotu, svaki od sljedećih koraka vrijedi za Ubuntu, Debian i distribucije kompatibilne s RHEL-om. Na kraju ovog vodiča za instalaciju Dockera na Linux imat ćete okruženje spremno za produkciju, konfigurirano sigurnosnim zadanim postavkama prema najboljim praksama.
Terminologija
Prije nastavka provjerite razumijete li ove temeljne pojmove:
- Docker: platforma za razvoj, isporuku i pokretanje aplikacija u izoliranim okruženjima.
- Docker Engine: temeljna klijent-poslužitelj tehnologija koja stvara i pokreće kontejnere.
- Kontejner (Container): standardizirana izvršna komponenta koja objedinjuje izvorni kod aplikacije s bibliotekama operacijskog sustava i ovisnostima potrebnima za njezino pokretanje.
- Slika (Image): predložak samo za čitanje s uputama za stvaranje kontejnera.
- Docker daemon: pozadinska usluga na hostu koja upravlja izgradnjom, pokretanjem i distribucijom kontejnera.
- Docker CLI: sučelje naredbenog retka za komunikaciju s daemonom.
- Docker Hub: javni registar koji održava Docker za pronalaženje i dijeljenje slika kontejnera.
- Registar (Registry): sustav za pohranu i distribuciju slika kontejnera.
- Instalacija: postupak kojim se programi pripremaju za izvršavanje.
- Upravitelj paketa: softverski alat koji automatizira instaliranje, nadogradnju, konfiguriranje i uklanjanje programa.
- Repozitorij: središnje mjesto na kojem se pohranjuju i održavaju softverski paketi.
- Službeni Docker repozitorij: pouzdan izvor koji održava Docker za dobivanje stabilnih softverskih paketa.
- Paket: komprimirana arhiva datoteka koja sadrži sve datoteke koje dolaze uz određenu aplikaciju.
- Ovisnost: program ili biblioteka koju drugi program zahtijeva za ispravan rad.
- Stabilno izdanje (Stable release): verzija softvera koja je temeljito testirana i smatra se pouzdanom za produkcijsku uporabu.
- Verzija: jedinstveno stanje softvera koje odražava njegove specifične značajke i ispravke.
Preduvjeti
Prije početka provjerite jesu li ispunjeni sljedeći uvjeti:
- Operacijski sustav: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 ili kompatibilan s RHEL-om (AlmaLinux, Rocky, RHEL) 8/9/10
- Pristup: sudo ili root pristup poslužitelju
- Potrebno znanje: samouvjereno služenje naredbenim retkom Linuxa
Korak 1: Postavljanje Docker repozitorija
Da biste dobili najnovije, sigurno i stabilno izdanje, uvijek koristite službeni Docker repozitorij, a ne zadane repozitorije operacijskog sustava.
Za Ubuntu:
Najprije ažurirajte indeks upravitelja paketa Linuxa i instalirajte potrebne pakete kako bi apt mogao koristiti repozitorij preko HTTPS-a:
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release
Dodajte službeni GPG ključ Dockera:
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Postavite stabilni repozitorij:
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Za Debian:
Koraci za instalaciju Dockera na Debian odgovaraju postupku za Ubuntu, ali upućuju na URL repozitorija specifičan za Debian. Najprije ažurirajte indeks upravitelja paketa Linuxa i instalirajte potrebne pakete:
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release
Dodajte službeni GPG ključ Dockera:
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Postavite stabilni repozitorij:
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Za distribucije kompatibilne s RHEL-om (AlmaLinux, Rocky, RHEL):
Instalirajte paket yum-utils i postavite stabilni repozitorij:
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Docker objavljuje pakete za sve distribucije kompatibilne s RHEL-om (uključujući AlmaLinux i Rocky Linux) pod putanjom repozitorija centos. Korištenje ovog URL-a očekivano je i u potpunosti podržano.
Rezultat: Docker repozitorij sada je dodan u vaš sustav, što upravitelju paketa omogućuje dohvaćanje najnovijih Docker paketa.
Korak 2: Instalacija Dockera na Ubuntu i Debian
Kad je Docker repozitorij konfiguriran, nastavite s instalacijom Docker Enginea na Ubuntu (ili Debian - naredbe su identične). Ovaj korak vrijedi za obje distribucije.
Najprije uklonite sve pakete u sukobu koje daju repozitoriji operacijskog sustava:
sudo apt remove docker.io podman-docker containerd runc
Ponovno ažurirajte apt indeks paketa i pomoću upravitelja paketa Linuxa instalirajte potrebne komponente:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin
Rezultat: Naredba se izvršava i iz Docker repozitorija dohvaća pakete i sve potrebne ovisnosti. Upravitelj paketa trebao bi dovršiti instalaciju Docker Enginea bez pogrešaka.
docker-ce označava Docker Community Edition, besplatnu inačicu idealnu za one koji hostaju samostalno.
Korak 3: Instalacija Dockera na distribucije kompatibilne s RHEL-om (AlmaLinux, Rocky, RHEL)
Na sustavima temeljenima na RHEL-u za instalaciju Docker Enginea koristite yum.
Najprije uklonite sve pakete u sukobu koje daju repozitoriji operacijskog sustava:
sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc
Pokrenite sljedeću naredbu:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin
Rezultat: Upravitelj paketa instalira potrebne pakete. Od vas će se tražiti da prihvatite GPG ključ (osim ako proslijedite zastavicu -y); potvrdite ga. Po završetku ćete vidjeti poruku o uspjehu.
Korak 4: Provjera instalacije Docker Enginea
Nakon instalacije ponašanje Docker daemona ovisi o distribuciji. Na Ubuntuu i Debianu docker.service automatski se pokreće nakon instalacije. Na distribucijama iz obitelji RHEL ne pokreće se.
Samo obitelj RHEL: ako je postupak instalacije ažurirao jezgru (na primjer putem ovisnosti kernel-core), ponovno pokrenite poslužitelj prije pokretanja Docker usluge:
sudo reboot
Preskakanje ovog koraka može uzrokovati da systemctl start docker ne uspije s pogreškama br_netfilter / addrtype, jer pokrenuta jezgra više ne odgovara instaliranim modulima.
Kad poslužitelj radi na aktualnoj jezgri, pokrenite i omogućite uslugu. Sljedeće su naredbe idempotentne i sigurne za izvršavanje na svim sustavima:
sudo systemctl start docker sudo systemctl enable docker
Rezultat: Docker daemon se pokreće, a sustav stvara simboličku vezu kako bi se automatski pokretao pri svakom ponovnom pokretanju.
Provjerite je li instalacija Docker Enginea uspjela pokretanjem slike hello-world:
sudo docker run hello-world
Rezultat: Docker CLI kontaktira Docker daemon, povlači sliku hello-world s Docker Huba i pokreće kontejner. U terminalu biste trebali vidjeti poruku »Hello from Docker!«.
Korak 5: Koraci nakon instalacije Dockera
Prema zadanim postavkama pokretanje Docker naredbi zahtijeva sudo. Da biste Docker naredbe pokretali kao korisnik bez root ovlasti, morate svog korisnika dodati u grupu docker. To su ključni koraci nakon instalacije Dockera za ugodno upravljanje vlastitom infrastrukturom.
Stvorite grupu docker (ako već ne postoji):
getent group docker || sudo groupadd docker
Dodajte svog korisnika u grupu docker:
sudo usermod -aG docker $USER
Rezultat: Vaš je korisnik dodan u grupu. Da bi promjene stupile na snagu, morate se odjaviti i ponovno prijaviti ili aktivirati novo članstvo u grupi u trenutnoj sesiji:
newgrp docker
newgrp docker stvara novu ljusku s ažuriranim članstvom u grupama. Svaka docker naredba koju nakon toga pokrenete radit će bez sudo, ali samo unutar te nove ljuske. Otvaranje drugog terminala i dalje zahtijeva potpunu ponovnu prijavu.
Članstvo u grupi docker daje ovlasti jednake root pristupu na hostu. U okruženjima samostalnog hostanja kojima je prioritet sigurnost ozbiljno razmotrite pokretanje Dockera u rootless načinu rada (vidi Korak 6).
Nakon pokretanja newgrp docker (ili odjave i ponovne prijave) testirajte konfiguraciju pokretanjem naredbe bez sudo:
docker run hello-world
Rezultat: Ponovno biste trebali vidjeti poruku »Hello from Docker!«, što potvrđuje da su vaši koraci nakon instalacije Dockera uspjeli.
Alternativa: brza instalacija putem praktične skripte
Za testna ili razvojna okruženja Docker nudi praktičnu skriptu (convenience script).
Ova metoda nije preporučena za produkciju. Izvršava se bez fiksiranja verzija, bezuvjetno nadograđuje Docker ako je već instaliran i povlači sve ovisnosti bez provjere.
Preporučuje se preuzeti skriptu i pregledati je prije izvršavanja:
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
Korak 6 (neobavezno): Pokretanje Dockera u rootless načinu rada
U okruženjima samostalnog hostanja pokretanje Dockera u rootless načinu rada povećava sigurnost jer se Docker daemon i kontejneri izvršavaju kao korisnik bez root ovlasti.
6.1 Preduvjeti
Najprije zaustavite i onemogućite Docker uslugu i socket na razini sustava te uklonite datoteku socketa:
sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock
Provjerite ima li vaš korisnik konfigurirane subuid i subgid (obično se postavljaju automatski):
cat /etc/subuid cat /etc/subgid
Omogućite lingering za svog korisnika kako bi se daemon mogao pokrenuti pri podizanju sustava:
sudo loginctl enable-linger $USER
6.2 Instalacija dodatnih paketa
Za Ubuntu/Debian:
sudo apt install docker-ce-rootless-extras uidmap dbus-user-session
Za AlmaLinux/RHEL (shadow-utils pruža uidmap i obično je unaprijed instaliran):
sudo yum install docker-ce-rootless-extras
6.3 Instalacija rootless daemona
Instalacijsku skriptu pokrenite iz potpune sesije prijave ciljnog korisnika (ne iz sudo su ni iz SSH ljuske bez prijave). Ako ste u kontekstu bez prijave, najprije izvezite potrebne varijable:
export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
Zatim pokrenite instalacijsku skriptu:
dockerd-rootless-setuptool.sh install
Prvo pokretanje instalacijske skripte neposredno nakon omogućavanja lingeringa može biti nestabilno. Ako se daemon ne pokrene, jednostavno ponovno pokrenite instalacijsku skriptu.
6.4 Konfiguracija varijabli okoline
Dodajte sljedeće varijable u konfiguracijsku datoteku svoje ljuske (npr. ~/.bashrc):
export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Učitajte datoteku (source) ili ponovno pokrenite ljusku kako biste primijenili promjene.
6.5 Ograničenja rootless načina rada
- Nije moguće objavljivati portove < 1024 (Docker nudi zaobilazna rješenja poput
setcap, prosljeđivanja portova putemslirp4netnsili usmjeravanja). - Nema podrške za
--net=host. - Swarm način rada i overlay mreže nisu podržani.
- AppArmor nije podržan.
- Zastavica
--privilegedne daje root pristup na razini hosta. - Podaci se pohranjuju u
~/.local/share/docker(uzmite to u obzir za sigurnosne kopije i kvote). - Zahtijeva cgroup v2.
- Koristi upravljački program za pohranu
overlayfsumjestooverlay2.
Povrat promjena (rollback)
Ako trebate poništiti instalaciju Dockera na Linuxu - bilo da je riječ o standardnoj postavi ili rootless konfiguraciji - slijedite korake u nastavku redom.
1. Povrat rootless načina rada (preskočite ako rootless nije bio konfiguriran):
Ako ste konfigurirali rootless način rada, najprije poništite te promjene, a tek zatim uklonite pakete:
dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER
Deinstalacija rootless načina rada nakon što su paketi uklonjeni (purge) neće uspjeti jer je instalacijska skripta dio paketa docker-ce-rootless-extras. Rootless način rada uvijek deinstalirajte dok su paketi još prisutni.
2. Uklanjanje paketa:
Debian/Ubuntu:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg
AlmaLinux/Rocky/RHEL:
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo
3. Uklanjanje grupe:
sudo groupdel docker || true
Uklanjanje paketa ne uklanja automatski slike, kontejnere, volumene ni prilagođene konfiguracijske datoteke. Naredbe rm -rf trajno brišu ove direktorije s podacima.
Zaključak
Vaša instalacija Dockera na Linuxu je dovršena i provjerena. Temelj je sada sigurno postavljen. Možete nastaviti s implementacijom kontejnera za svoje samostalno hostane alate, uz potpunu kontrolu nad datotekama u Nextcloudu, Bitwarden trezorima i Matrix komunikacijom.
Verzija dokumenta: 1.0
Zadnje ažuriranje: svibanj 2026
Vlasnik: Tim za tehničku dokumentaciju