Namestitev Dockerja v Linux: Ubuntu, Debian, RHEL | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Namestitev Dockerja na priljubljenih distribucijah Linux: vodnik za namestitev Dockerja v sistemu Linux

Raven: Srednja
Ocenjeni čas: ~15 minut
Cilj: Nastaviti varno, decentralizirano okolje z namestitvijo Dockerja za samostojno gostovanje osebnih storitev, kot so Nextcloud, Bitwarden in Matrix.

Uvod

Z gostovanjem lastnih »oblačnih« storitev zagotovite zasebnost in popolno lastništvo nad podatki. Za uvedbo storitev, kot so Nextcloud (shranjevanje datotek), Bitwarden (upravljanje gesel) ali Matrix (varna komunikacija), brez ukvarjanja z zapletenimi odvisnostmi na ravni gostitelja potrebujete izolirana okolja. V tem priročniku bomo predstavili, kako namestiti Docker v Linux in zgraditi robustno, ponovljivo osnovo za samostojno gostovanje. Ne glede na to, ali potrebujete celotno postavitev Dockerja v Linuxu za en strežnik ali za celotno floto, vsi spodnji koraki veljajo za Ubuntu, Debian in distribucije, združljive z RHEL. Ob koncu tega priročnika za namestitev Dockerja v Linux boste imeli produkcijsko pripravljeno okolje z varnostnimi privzetimi nastavitvami po najboljših praksah.

Terminologija

Preden nadaljujete, se prepričajte, da razumete te osnovne pojme:

  • Docker: platforma za razvoj, dostavo in izvajanje aplikacij v izoliranih okoljih.
  • Docker Engine: osrednja tehnologija odjemalec-strežnik, ki ustvarja in izvaja vsebnike.
  • Vsebnik (Container): standardizirana izvršljiva komponenta, ki združuje izvorno kodo aplikacije s knjižnicami operacijskega sistema in odvisnostmi, potrebnimi za njeno izvajanje.
  • Slika (Image): predloga samo za branje z navodili za ustvarjanje vsebnika.
  • Demon Dockerja (Docker daemon): storitev v ozadju na gostitelju, ki upravlja gradnjo, izvajanje in distribucijo vsebnikov.
  • Docker CLI: vmesnik ukazne vrstice za komunikacijo z demonom.
  • Docker Hub: javni register, ki ga vzdržuje Docker, za iskanje in deljenje slik vsebnikov.
  • Register (Registry): sistem za shranjevanje in distribucijo slik vsebnikov.
  • Namestitev: postopek, s katerim so programi pripravljeni za izvajanje.
  • Upravljalnik paketov: programsko orodje, ki avtomatizira nameščanje, posodabljanje, konfiguriranje in odstranjevanje programov.
  • Skladišče (Repository): osrednja lokacija, kjer so shranjeni in vzdrževani programski paketi.
  • Uradno skladišče Dockerja: zaupanja vreden vir, ki ga vzdržuje Docker, za pridobivanje stabilnih programskih paketov.
  • Paket: stisnjen arhiv datotek, ki vsebuje vse datoteke določene aplikacije.
  • Odvisnost: program ali knjižnica, ki jo drug program potrebuje za pravilno delovanje.
  • Stabilna izdaja (Stable release): različica programske opreme, ki je bila temeljito preizkušena in velja za zanesljivo za produkcijsko uporabo.
  • Različica: edinstveno stanje programske opreme, ki odraža njene posebne funkcije in popravke.

Predpogoji

Pred začetkom se prepričajte, da so izpolnjeni naslednji pogoji:

  • Operacijski sistem: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 ali distribucija, združljiva z RHEL (AlmaLinux, Rocky, RHEL) 8/9/10
  • Dostop: dostop sudo ali root do strežnika
  • Zahtevano znanje: samozavestna uporaba ukazne vrstice Linuxa

Korak 1: Nastavitev skladišča Docker

Da dobite najnovejšo, varno in stabilno izdajo, vedno uporabljajte uradno skladišče Dockerja in ne privzetih skladišč operacijskega sistema.

Za Ubuntu:

Najprej posodobite indeks upravljalnika paketov Linuxa in namestite potrebne pakete, da lahko apt uporablja skladišče prek HTTPS:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Dodajte uradni ključ GPG Dockerja:

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

Nastavite stabilno skladišče:

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:

Koraki za namestitev Dockerja v Debian sledijo postopku za Ubuntu, vendar kažejo na naslov URL skladišča, značilen za Debian. Najprej posodobite indeks upravljalnika paketov Linuxa in namestite potrebne pakete:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Dodajte uradni ključ GPG Dockerja:

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

Nastavite stabilno skladišče:

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, združljive z RHEL (AlmaLinux, Rocky, RHEL):

Namestite paket yum-utils in nastavite stabilno skladišče:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker objavlja pakete za vse distribucije, združljive z RHEL (vključno z AlmaLinux in Rocky Linux), pod potjo skladišča centos. Uporaba tega naslova URL je pričakovana in v celoti podprta.

Rezultat: Skladišče Docker je zdaj dodano v sistem, kar upravljalniku paketov omogoča prenos najnovejših paketov Docker.

Korak 2: Namestitev Dockerja v Ubuntu in Debian

Ko je skladišče Docker nastavljeno, nadaljujte z namestitvijo Docker Engine v Ubuntu (ali Debian - ukazi so enaki). Ta korak velja za obe distribuciji.

Najprej odstranite morebitne pakete v navzkrižju, ki jih zagotavljajo skladišča operacijskega sistema:

sudo apt remove docker.io podman-docker containerd runc

Znova posodobite indeks paketov apt in z upravljalnikom paketov Linuxa namestite potrebne komponente:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Rezultat: Ukaz se izvede in iz skladišča Docker prenese pakete ter vse potrebne odvisnosti. Upravljalnik paketov bi moral namestitev Docker Engine zaključiti brez napak.

Info

docker-ce pomeni Docker Community Edition, brezplačno različico, ki je idealna za samostojno gostovanje.

Korak 3: Namestitev Dockerja v distribucije, združljive z RHEL (AlmaLinux, Rocky, RHEL)

V sistemih na osnovi RHEL za namestitev Docker Engine uporabite yum.

Najprej odstranite morebitne pakete v navzkrižju, ki jih zagotavljajo skladišča operacijskega sistema:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Zaženite naslednji ukaz:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Rezultat: Upravljalnik paketov namesti potrebne pakete. Pozvani boste, da sprejmete ključ GPG (razen če podate stikalo -y); potrdite ga. Ko je postopek končan, se prikaže sporočilo o uspehu.

Korak 4: Preverjanje namestitve Docker Engine

Po namestitvi je obnašanje demona Docker odvisno od distribucije. V Ubuntuju in Debianu se docker.service ob namestitvi samodejno zažene. V distribucijah družine RHEL se ne.

Warning

Samo družina RHEL: če je postopek namestitve posodobil jedro (na primer prek odvisnosti kernel-core), pred zagonom storitve Docker znova zaženite strežnik:

sudo reboot

Če ta korak izpustite, lahko systemctl start docker odpove z napakami br_netfilter / addrtype, ker se jedro, ki se izvaja, ne ujema več z nameščenimi moduli.

Ko strežnik teče na trenutnem jedru, zaženite in omogočite storitev. Naslednji ukazi so idempotentni in jih je varno izvajati v vseh sistemih:

sudo systemctl start docker sudo systemctl enable docker

Rezultat: Demon Docker se zažene, sistem pa ustvari simbolno povezavo, ki zagotovi samodejni zagon ob vsakem ponovnem zagonu.

Uspešnost namestitve Docker Engine preverite z zagonom slike hello-world:

sudo docker run hello-world

Rezultat: Docker CLI vzpostavi stik z demonom Docker, iz Docker Hub prenese sliko hello-world in zažene vsebnik. V terminalu bi morali videti sporočilo »Hello from Docker!«.

Korak 5: Koraki po namestitvi Dockerja

Privzeto zagon ukazov Docker zahteva sudo. Če želite ukaze Docker izvajati kot uporabnik brez pravic root, morate svojega uporabnika dodati v skupino docker. To so bistveni koraki po namestitvi Dockerja za udobno upravljanje vaše samostojno gostovane infrastrukture.

Ustvarite skupino docker (če še ne obstaja):

getent group docker || sudo groupadd docker

Dodajte svojega uporabnika v skupino docker:

sudo usermod -aG docker $USER

Rezultat: Uporabnik je dodan v skupino. Da bodo spremembe začele veljati, se morate odjaviti in znova prijaviti ali pa novo članstvo v skupini aktivirati v trenutni seji:

newgrp docker

Info

newgrp docker ustvari novo lupino s posodobljenim članstvom v skupinah. Vsak ukaz docker, ki ga nato zaženete, bo deloval brez sudo, vendar samo znotraj te nove lupine. Odpiranje drugega terminala še vedno zahteva popolno ponovno prijavo.

Warning

Članstvo v skupini docker daje pravice, enakovredne dostopu root do gostitelja. V okoljih samostojnega gostovanja, kjer imate prednost varnost, resno razmislite o zagonu Dockerja v načinu rootless (glejte Korak 6).

Po zagonu newgrp docker (ali po odjavi in ponovni prijavi) preizkusite konfiguracijo z ukazom brez sudo:

docker run hello-world

Rezultat: Znova bi morali videti sporočilo »Hello from Docker!«, kar potrjuje, da so bili koraki po namestitvi Dockerja uspešni.

Alternativa: hitra namestitev z priročno skripto

Za testna ali razvojna okolja Docker ponuja priročno skripto (convenience script).

Warning

Ta metoda ni priporočljiva za produkcijo. Izvaja se brez pripenjanja različic, brezpogojno nadgradi Docker, če je že nameščen, in prenese vse odvisnosti brez preverjanja.

Priporočljivo je, da skripto prenesete in jo pred zagonom pregledate:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Korak 6 (neobvezno): Zagon Dockerja v načinu rootless

V okoljih samostojnega gostovanja zagon Dockerja v načinu rootless poveča varnost, saj se demon Docker in vsebniki izvajajo kot uporabnik brez pravic root.

6.1 Predpogoji

Najprej ustavite in onemogočite sistemsko storitev Docker ter vtič (socket) in odstranite datoteko vtiča:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Preverite, ali ima vaš uporabnik nastavljena subuid in subgid (običajno se nastavita samodejno):

cat /etc/subuid cat /etc/subgid

Za svojega uporabnika omogočite lingering, da se lahko demon zažene ob zagonu sistema:

sudo loginctl enable-linger $USER

6.2 Namestitev dodatnih paketov

Za Ubuntu/Debian:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Za AlmaLinux/RHEL (shadow-utils zagotavlja uidmap in je običajno že nameščen):

sudo yum install docker-ce-rootless-extras

6.3 Namestitev demona rootless

Namestitveno skripto zaženite iz polne prijavne seje ciljnega uporabnika (ne iz sudo su ali lupine SSH brez prijave). Če ste v kontekstu brez prijave, najprej izvozite zahtevane spremenljivke:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Nato zaženite namestitveno skripto:

dockerd-rootless-setuptool.sh install

Info

Prvi zagon namestitvene skripte takoj po omogočitvi lingeringa je lahko nestabilen. Če se demon ne zažene, preprosto znova zaženite namestitveno skripto.

6.4 Nastavitev okoljskih spremenljivk

Naslednje spremenljivke dodajte v konfiguracijsko datoteko lupine (npr. ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Datoteko naložite (source) ali znova zaženite lupino, da se spremembe uveljavijo.

6.5 Omejitve načina rootless

  • Ni mogoče objavljati vrat < 1024 (Docker ponuja obvoze, kot so setcap, posredovanje vrat slirp4netns ali usmerjanje).
  • Ni podpore za --net=host.
  • Način Swarm in omrežja overlay niso podprti.
  • AppArmor ni podprt.
  • Stikalo --privileged ne podeli dostopa root na ravni gostitelja.
  • Podatki so shranjeni v ~/.local/share/docker (upoštevajte to pri varnostnih kopijah in kvotah).
  • Zahteva cgroup v2.
  • Uporablja gonilnik za shranjevanje overlayfs namesto overlay2.

Povrnitev sprememb (rollback)

Če morate razveljaviti namestitev Dockerja v Linuxu - bodisi standardno bodisi z načinom rootless - sledite spodnjim korakom po vrstnem redu.

1. Povrnitev načina rootless (preskočite, če ni bil nastavljen):

Če ste nastavili način rootless, najprej razveljavite te spremembe, šele nato odstranite pakete:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Odstranitev načina rootless po čiščenju paketov (purge) ne bo uspela, ker je namestitvena skripta del paketa docker-ce-rootless-extras. Način rootless vedno odstranite, dokler so paketi še prisotni.

2. Odstranitev paketov:

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. Odstranitev skupine:

sudo groupdel docker || true

Warning

Z odstranitvijo paketov se slike, vsebniki, nosilci (volumes) in prilagojene konfiguracijske datoteke ne odstranijo samodejno. Ukazi rm -rf te podatkovne mape trajno izbrišejo.

Zaključek

Vaša namestitev Dockerja v Linuxu je končana in preverjena. Osnova je zdaj varno vzpostavljena. Lahko nadaljujete z uvedbo vsebnikov za svoja samostojno gostovana orodja in ohranite popoln nadzor nad datotekami Nextcloud, trezorji Bitwarden in komunikacijo Matrix.

Različica dokumenta: 1.0
Zadnja posodobitev: maj 2026
Lastnik: Ekipa za tehnično dokumentacijo

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA