Kaj je Docker? Vsebniki pojasnjeni za nerazvijalce
Docker je orodje, ki aplikacijo zapakira skupaj z vsem, kar potrebuje za delovanje – pravilno različico jezika, knjižnice, sistemska orodja in nastavitve – v standardno enoto, imenovano vsebnik (container). Vsebnik teče enako na razvijalčevem prenosniku, testnem strežniku ali v oblačnem gostitelju, s čimer se odpravi klasičen problem »ampak pri meni je delovalo«. Recept za gradnjo vsebnika je kratka besedilna datoteka, imenovana Dockerfile.
Zakaj je Docker pomemben, ko gradite z AI
Če ima vaša aplikacija zaledje – API v Pythonu, Node, C# ali Javi – mora teči nekje, kjer je nameščena natanko prava programska oprema. Docker je najpogostejši način, kako to ponovljivo narediti.
- Namestitev zaledij. Mnogi gostitelji, vključno z Mythexom, zaledja namestijo tako, da iz Dockerfile-a zgradijo vsebnik. V Mythexu zahteva po »C# Web API« ali »Java zaledju« dobite aplikacijo in Dockerfile, objava pa zgradi sliko in jo namesti (API zaledja).
- Odhod z platforme. Če izvozite aplikacijo, zgrajeno z AI, vam Dockerfile močno olajša zagon na drugem gostitelju. Glejte kako izvoziti in gostiti aplikacijo, zgrajeno z AI, sami.
- Delo z razvijalci. Razvijalec, ki se pridruži projektu, lahko celotno aplikacijo zažene z enim ali dvema ukazoma, namesto da cel dan nameša namestitve.
Vsakdanja primerjava: transportni zabojniki
Preden so bili standardni transportni zabojniki, se je tovor nalagal kos za kosom – vreče, sodi, zaboji – in vsako pristanišče je to obravnavalo drugače. Standardni jekleni zabojnik je to spremenil: enkrat ga spakirate, in katerakoli ladja, dvigalo, vlak ali tovornjak ga lahko premakne, ne da bi jih zanimalo, kaj je v njem.
Docker naredi enako za programsko opremo:
- Dockerfile je pakirni seznam in navodila.
- Slika je zapečatena, zapakirana škatla.
- Tekoč vsebnik je ta škatla, ki dela na ladji – tukaj na strežniku.
- Docker Engine je dvigalo in ladja: programska oprema na strežniku, ki zna zagnati vsak vsebnik.
Kako deluje Docker
| Del | Kaj je |
|---|---|
| Dockerfile | Besedilna datoteka z navodili po korakih za gradnjo slike. |
| Slika (image) | Paket samo za branje: osnove operacijskega sistema, izvajalno okolje, knjižnice in vaša koda. |
| Vsebnik (container) | Tekoč primerek slike, izoliran od drugih aplikacij na istem stroju. |
| Register | Mesto za shranjevanje in deljenje slik, na primer Docker Hub ali register oblačnega ponudnika. |
| Docker Engine | Storitev v ozadju, ki gradi slike in zaganja vsebnike. Brezplačen in odprtokoden. |
| Docker Desktop | Aplikacija za Mac, Windows in Linux, ki združuje motor z grafičnim vmesnikom. |
Vsebniki proti navideznim strojem: navidezni stroj se pretvarja, da je ločen cel računalnik z lastnim operacijskim sistemom, zato je težak in se počasi zaganja. Vsebnik deli jedro operacijskega sistema gostitelja in izolira samo aplikacijo in njene datoteke, zato se običajno zažene v nekaj sekundah in porabi veliko manj pomnilnika. Na enem strežniku lahko teče veliko vsebnikov hkrati.
Praktičen primer: majhen API v Pythonu
Recimo, da je vaš graditelj z AI ustvaril zaledje FastAPI v Pythonu za aplikacijo za rezervacije. Dockerfile bi lahko izgledal takole:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Vrstica za vrstico:
| Vrstica | Kaj počne |
|---|---|
FROM python:3.12-slim | Začne z uradno sliko, ki že ima nameščen Python 3.12. |
WORKDIR /app | Dela v mapi /app znotraj vsebnika. |
COPY requirements.txt . in RUN pip install ... | Kopira seznam knjižnic in jih namesti. |
COPY . . | Kopira kodo aplikacije. |
EXPOSE 8000 | Opozori, da aplikacija posluša na vratih 8000. |
CMD [...] | Ukaz, ki zažene spletni strežnik, ko se vsebnik zažene. |
Preprosto povedano: »Začni s Pythonom 3.12. Namesti knjižnice, navedene v requirements.txt. Kopiraj kodo. Zaženi spletni strežnik na vratih 8000.«
Razvijalec (ali gostiteljska platforma) nato zažene dva ukaza:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
Prvi zgradi sliko in jo poimenuje booking-api. Drugi zažene vsebnik in poveže vrata 8000 na stroju z vrati 8000 znotraj vsebnika. API zdaj teče – enako kot bo na vsakem strežniku, ki ima Docker.
Opazite, česa v sliki ni: gesel in API ključev. Ti se predajo ob zagonu vsebnika kot okoljske spremenljivke, tako da ista slika lahko teče v testiranju in produkciji z različnimi nastavitvami.
Ključni pojmi
| Pojem | Pomen |
|---|---|
| Vsebnik | Izolirana, tekoča zapakirana aplikacija z odvisnostmi. |
| Slika | Predloga, iz katere se zažene vsebnik. |
| Osnovna slika | Izhodišče v vrstici FROM Dockerfile-a, na primer python:3.12-slim ali node:22. |
| Plast | Vsak korak Dockerfile-a doda predpomnjeno plast, kar pospeši ponovne gradnje. |
| Preslikava vrat | Povezava vrat na gostitelju z vrati znotraj vsebnika. |
| Shramba (volume) | Shramba, ki preživi, ko se vsebnik zamenja. Sami vsebniki so zavrženi. |
| Docker Compose | Datoteka, ki opisuje več vsebnikov, ki tečejo skupaj, na primer API in bazo. |
| Kubernetes | Sistem za zagon mnogih vsebnikov na mnogih strežnikih. Večina majhnih aplikacij ga ne potrebuje. |
Pogoste zmote
- »Docker je navidezni stroj.« Je lažji: vsebniki delijo jedro gostitelja.
- »Podatki, shranjeni v vsebniku, so varni.« Vsebniki so namenjeni temu, da jih zavržemo in zamenjamo. Vse, kar mora trajati – uporabniški podatki, nalaganja – sodi v bazo podatkov, shrambo datotek ali shrambo (volume).
- »Skrivnosti v Dockerfile-u so v redu, ker je to zasebno.« Slike se delijo in potiskajo v registre. Skrivnosti posredujte ob zagonu.
- »Docker naredi aplikacijo varno.« Izolacija pomaga, vendar je vsebnik z zastarelo programsko opremo in šibkimi nastavitvami še vedno ranljiv.
- »Vsaka aplikacija potrebuje Docker.« Statično spletno mesto ali preprost frontend se običajno gosti kot navadne datoteke, brez vsebnika.
- »Docker Desktop je brezplačen za vse.« Motor je brezplačen; Docker Desktop za večja podjetja zahteva plačljivo naročnino, po pogojih Dockerja.
Kaj vprašati svojega graditelja z AI
- »Ali ta aplikacija potrebuje Dockerfile? Če, razloži vsako vrstico preprosto.«
- »Uporabi majhno, uradno osnovno sliko in pripni različico jezika.«
- »Skrivnosti naj ne bodo v sliki. Naj se berejo iz okoljskih spremenljivk ob zagonu.«
- »Poskrbi, da so nalaganja in podatki shranjeni v bazi ali shrambi datotek, ne v vsebniku.«
- »Dodaj datoteko Docker Compose, da razvijalec lokalno zažene frontend, API in bazo z enim ukazom.«
- »Dodaj končno točko za preverjanje stanja, da lahko gostitelj ve, ali API deluje.«
Docker v Mythexu
Za uporabo Mythexa vam ni treba namestiti ali zagnati Dockerja. Vaš projekt teče v zasebnem oblačnem peskovniku, ko pa zahtevate zaledje, ki potrebuje vsebnik – na primer C#, Javo ali lastno storitev Node ali Python – Mythex napiše aplikacijo in Dockerfile, jo predogleda v peskovniku in ob objavi namesti, brez kakršnekoli nastavitve gostovanja (kako se izbere tehnologija). Pri Pro lahko projekt izvozite ali sinhronizirate z GitHubom in tako Dockerfile vzamete s seboj. Za to, kako se zaledje in frontend povezujeta, glejte frontend proti zaledju.
Vprašanja
Kaj je Docker na kratko?
Docker je orodje, ki aplikacijo zapakira skupaj z vsem, kar potrebuje za delovanje – izvajalnim okoljem jezika, knjižnicami in nastavitvami – v standardno enoto, imenovano vsebnik (container). Vsebnik teče enako na prenosniku, testnem strežniku ali v oblaku.
Kakšna je razlika med Docker sliko in vsebnikom?
Slika je zapakiran, samo za branje predloga: aplikacija in njene odvisnosti, zgrajene iz Dockerfile-a. Vsebnik je tekoča kopija te slike. Iz ene slike lahko zaženete veliko vsebnikov.
Ali je Docker navidezni stroj?
Ne. Navidezni stroj posnema cel računalnik z lastnim operacijskim sistemom. Vsebniki delijo jedro operacijskega sistema gostiteljskega stroja in izolirajo samo aplikacijo, zato se zaženejo hitreje in porabijo manj pomnilnika.
Ali je Docker brezplačen?
Docker Engine, jedro, ki zaganja vsebnike, je brezplačen in odprtokoden. Od septembra 2026 pogoji Dockerja navajajo, da je Docker Desktop brezplačen za nekomercialne odprtokodne projekte ter za podjetja z manj kot 250 zaposlenimi in manj kot 10 milijoni dolarjev letnega prihodka; večja podjetja potrebujejo plačljivo naročnino.
Ali moram za gradnjo aplikacije z AI znati Docker?
Običajno ne. Mnogi graditelji z AI vsebnike upravljajo namesto vas. Koristno je vedeti, kaj je Dockerfile, da razumete, kako je zaledje zapakirano, in da lahko aplikacijo po izvozu zaženete ali gostite drugje.