Preskoči na sadržaj
NovoPustili smo novi sajt sa mnogo novih opcija — AI Builder uskoro

Vodič · oko 15 minuta

Kako instalirati Docker na VPS: Ubuntu i AlmaLinux

Komande za instalaciju Docker Engine-a i Docker Compose-a iz zvaničnog repozitorijuma, prvi kontejner, podešavanje firewall-a i rešenja za greške koje se najčešće javljaju. Ako tek upoznajete kontejnere, prvo pročitajte šta je Docker.

Ubuntu 24.04AlmaLinux 9 i Rocky Linux 9Docker Compose v2
BRZI ODGOVOR

Kako da instaliram Docker na Ubuntu VPS?

Dodajte zvanični Docker apt repozitorijum (GPG ključ sa download.docker.com i red u /etc/apt/sources.list.d/docker.list), pa instalirajte docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin i docker-compose-plugin. Proverite instalaciju komandom sudo docker run hello-world. Docker iz Ubuntu paketa docker.io radi, ali je obično starija verzija.

  • Docker Compose v2 se poziva kao docker compose (sa razmakom)
  • Korisnik u grupi docker radi bez sudo, ali ta grupa ima root prava
  • Objavljeni portovi zaobilaze ufw; vezujte ih za 127.0.0.1 iza proxy-ja

Ažurirano: · BeoHosting tim

Ubuntu 24.04

Isto važi za Ubuntu 22.04. Prvo uklonite pakete koji bi se sukobili sa zvaničnim (ako ih nema, komanda samo javi da nisu instalirani):

Uklanjanje starih paketa
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
  sudo apt-get remove -y $pkg
done
Repozitorijum i instalacija
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

AlmaLinux 9 i Rocky Linux 9

Na ovim sistemima je često instaliran Podman, koji se sukobljava sa Dockerom, pa ga prvo uklonite. Zvanični Docker paketi se instaliraju iz RHEL repozitorijuma:

Instalacija
sudo dnf remove -y docker docker-client docker-common docker-latest docker-engine podman runc
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run hello-world

Firewall na ovim sistemima je firewalld. Za web server otvorite HTTP i HTTPS: sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload.

Posle instalacije: korisnik i provera

Rad bez sudo
sudo usermod -aG docker $USER
# odjavite se i ponovo prijavite, pa:
docker version
docker compose version

Prvi projekat sa Docker Compose-om

Primer: Nginx koji služi statičke fajlove, dostupan samo lokalno na portu 8080.

~/prvi/docker-compose.yml
services:
  web:
    image: nginx:stable
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
Pokretanje
mkdir -p ~/prvi/html && cd ~/prvi
echo "Radi" > html/index.html
docker compose up -d
curl http://127.0.0.1:8080     # ispisuje: Radi
docker compose logs -f web
docker compose down            # zaustavlja i briše kontejner (fajlovi ostaju)

Kad treba domen sa SSL-om, ispred kontejnera stavite Caddy ili Nginx. Kompletan primer sa Caddy-jem je u vodiču kako instalirati n8n na VPS.

Firewall: Docker i ufw

Docker sam upisuje iptables pravila za objavljene portove. Zato port objavljen kao "8080:80" bude dostupan sa interneta čak i kad ga ufw ne dozvoljava. Dva pravila koja to rešavaju:

  • Servise iza reverse proxy-ja objavljujte samo lokalno: "127.0.0.1:8080:80", ili ih uopšte ne objavljujte nego ih proxy zove po imenu servisa u istoj Compose mreži.
  • Javno objavite samo portove 80 i 443 (proxy) i 22 (SSH).
ufw na Ubuntu-u
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ss -tlnp     # proverite šta zaista sluša na 0.0.0.0

Česte greške i rešenja

Česte greške posle instalacije Dockera
PorukaUzrok i rešenje
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sockKorisnik nije u grupi docker ili se nije ponovo prijavio. sudo usermod -aG docker $USER, pa nova SSH sesija.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?Servis ne radi. sudo systemctl enable --now docker, pa sudo systemctl status docker za razlog.
docker-compose: command not foundInstaliran je Compose v2. Koristite docker compose (sa razmakom).
Bind for 0.0.0.0:80 failed: port is already allocatedPort već koristi drugi kontejner ili servis (često Nginx ili Apache na hostu). sudo ss -tlnp | grep :80, pa ugasite taj servis ili promenite port.
no space left on deviceDisk su popunile slike i logovi. docker system df, pa docker image prune -a i ograničenje veličine logova.
Conflicting values set for option Signed-ByRepozitorijum je dodat dva puta (na primer i u docker.list i u docker.sources). Obrišite jedan fajl iz /etc/apt/sources.list.d/.

Šta dalje: n8n u Dockeru, Ollama i Open WebUI ili Next.js aplikacija.

Paketi i cene

VPS za Docker

PreporukaVPS · root

CLOUD 2

Dve do tri manje aplikacije u kontejnerima.

1.790 RSD mesečno

ili 19.690 RSD godišnje

vCPU
2
RAM
4 GB
Disk
40 GB NVMe
Root pristup
da
Naruči CLOUD 2

Kartica, uplatnica ili PayPal · faktura za firme

VPS · root

CLOUD 4

Baza, više servisa i manji AI modeli.

3.390 RSD mesečno

ili 37.290 RSD godišnje

vCPU
4
RAM
8 GB
Disk
80 GB NVMe
Root pristup
da
Naruči CLOUD 4

Kartica, uplatnica ili PayPal · faktura za firme

VPS · root

CLOUD 8

Ollama sa većim modelima i više projekata.

6.890 RSD mesečno

ili 75.790 RSD godišnje

vCPU
8
RAM
16 GB
Disk
160 GB NVMe
Root pristup
da
Naruči CLOUD 8

Kartica, uplatnica ili PayPal · faktura za firme

Pri porudžbini birate operativni sistem (Ubuntu, Debian, AlmaLinux, Rocky Linux i drugi). VPS je neupravljan; upravljanje se doplaćuje. Cene su konačne, BeoHosting nije u sistemu PDV-a.

Pitanja o Dockeru

Compose, portovi, memorija i disk.

Koja je razlika između docker compose i docker-compose?

docker compose (sa razmakom) je dodatak Docker CLI-ja, Compose v2, i instalira se paketom docker-compose-plugin. docker-compose (sa crticom) je stari, zasebni program koji se više ne razvija. Fajl docker-compose.yml je isti za oba.

Zašto kontejner radi, a sajt se ne otvara spolja?

Najčešće port nije objavljen (nema „ports“ u compose fajlu) ili je vezan za 127.0.0.1. Proverite docker ps (kolona PORTS) i da li aplikacija u kontejneru sluša na 0.0.0.0, a ne na localhost.

Da li Docker radi na cPanel hostingu?

Ne. Na deljenom hostingu nema root pristupa koji Docker traži. Docker pokrećete na VPS-u ili namenskom serveru. Za manje Node.js i Python aplikacije bez Dockera pogledajte Node.js hosting.

Koliko RAM-a treba za Docker?

Sam Docker troši malo memorije; troše je kontejneri. Za dve do tri manje aplikacije (na primer n8n i Caddy) dovoljan je CLOUD 2 sa 4 GB RAM-a (1.790 RSD mesečno). Za bazu, više servisa ili Ollamu uzmite CLOUD 4 (8 GB) ili jači.

Kako da obrišem stare slike i oslobodim disk?

docker system df pokazuje koliko prostora zauzimaju slike, kontejneri i volumeni. docker image prune -a briše slike koje ne koristi nijedan kontejner. Volumene brišite samo ako znate šta je u njima, jer tu stoje podaci aplikacija.