Kaj je Docker in zakaj ga uporabljamo?

Docker Logo

Vito Senič - FERI 2025
Predstavitev pri predmetu Sistemska administracija, 2. letnik 2. semester, RIT

Kaj je Docker?

  • Rešitev za: "Dela na mojem računalniku"
  • PaaS (Platform as a Service)
  • Platforma za razvoj, pošiljanje in zagon aplikacij
  • Izolacija aplikacij v kontejnerjih
  • Standardizacija okolja

Ozadje Dockerja

  • Prvi osnutki že nastali leta 2010 (Y Combinator) uradno izdan 2013 (Solomon Hykes)
  • Temelji na Linux funkcionalnostih:
    • cgroups – omejevanje porabe CPU, RAM, itd.
    • namespaces – izolacija procesov (PID, mreža, datotečni sistem...)
    • netlink – komunikacija z jedrom (omrežne nastavitve)
  • libcontainer - privzeti runtime
  • Napisan v Go programskem jeziku
  • Deluje na različnih platformah:
    • Linux: nativno
    • Windows/macOS: prek virtualnega okolja (VM)
Docker Architecture

Arhitektura

Docker Architecture
Docker Architecture

Dockerfile

docker-compose.yml

						
				
						
					

Orkestracija

  • Zakaj? Ko imamo več containerjev → potrebujemo nadzor, skaliranje, avtomatizacijo
  • Docker Swarm – vgrajena orkestracija v Docker, enostavna za začetek
  • Kubernetes – industrijski standard, bolj zmogljiv, kompleksnejši
  • Vloge v klastru:
    • Manager: vodi klaster, dodeljuje delo
    • Worker: izvaja containerje po navodilih managerja
  • Uporaba: Skaliranje, load balancing, odpornost na napake
Docker Architecture

Praktični primer uporabe Dockerja

  • Mikroservisna aplikacija: Node.js API, auth servis, worker, Redis, PostgreSQL (dev), Nginx reverse proxy
  • Docker Compose: lokalni razvoj celotnega sistema
  • Swarm/Kubernetes: za produkcijsko orkestracijo
  • V Docker damo: API-je, workerje, Redis, reverse proxy
  • Ne damo: baze v produkciji, frontend na CDN (Next.js → Vercel)

Vprašanja za test

1. Kaj je glavni problem, ki ga Docker rešuje?

  • A) Povezovanje med bazo in aplikacijo
  • B) “Dela na mojem računalniku, ne pa na tvojem”
  • C) Prikazovanje podatkov v HTML-ju

2. Kaj je namen Docker volume-a?

  • A) Povečanje hitrosti aplikacije
  • B) Omogoča zunanji dostop do containera
  • C) Ohranjanje podatkov ob ponovnem zagonu ali izbrisu containerja

3. Kaj je Dockerfile?

  • A) Datoteka za shranjevanje podatkov
  • B) Datoteka, ki vsebuje navodila za ustvarjanje Docker image-a
  • C) Konfiguracijska datoteka za omrežje containerjev

Viri