Rokasgrāmatas

Kas ir Docker? Konteineri vienkārši izskaidroti nespeciālistiem

Docker ir rīks, kas iepako lietotni kopā ar visu, kas tai nepieciešams darbam — pareizo valodas versiju, bibliotēkām, sistēmas rīkiem un iestatījumiem — standarta vienībā, ko sauc par konteineru (container). Konteiners darbojas vienādi izstrādātāja klēpjdatorā, testa serverī vai mākoņa hostā, un tas atrisina klasisko problēmu „bet man tas strādāja manā datorā”. Recepti konteinera izveidei raksta īsā teksta failā, ko sauc par Dockerfile.

Kāpēc Docker ir svarīgs, veidojot ar MI

Ja jūsu lietotnei ir backend — API Python, Node, C# vai Java valodā —, tai jādarbojas kaut kur, kur ir tieši pareizā programmatūra. Docker ir biežākais veids, kā to padarīt atkārtojamu.

  • Backend izvietošana. Daudzi hosti, tostarp Mythex, izvieto backend, veidojot konteineru no Dockerfile. Mythex, pieprasot „C# Web API” vai „Java backend”, iegūstat lietotni un Dockerfile, un Publicēt veido attēlu un izvieto to (API backend).
  • Platformas atstāšana. Ja eksportējat MI veidotu lietotni, Dockerfile ļauj daudz vieglāk palaist to citā hostā. Skatiet kā eksportēt un pašhostēt MI veidotu lietotni.
  • Darbs ar izstrādātājiem. Izstrādātājs, kas pievienojas jūsu projektam, var palaist visu lietotni ar vienu vai divām komandām, nevis pavadīt dienu, instalējot lietas.

Ikdienas salīdzinājums: kuģu konteineri

Pirms standarta kravas konteineriem kravu iekrāva pa gabaliem — maisos, mucās, kastēs —, un katra osta to apstrādāja citādi. Standarta tērauda konteiners to mainīja: iepakojiet vienreiz, un jebkurš kuģis, celtnis, vilciens vai kravas auto to var pārvietot, neinteresējoties par to, kas iekšā.

Docker dara to pašu ar programmatūru:

  • Dockerfile ir iepakošanas saraksts un instrukcijas.
  • Attēls ir noslēgtais, iepakotais konteiners.
  • Darbojošs konteiners ir šī kaste, kas nodarbināta uz kuģa — šeit, serverī.
  • Docker Engine ir celtnis un kuģis: programmatūra serverī, kas zina, kā palaist jebkuru konteineru.

Kā darbojas Docker

DaļaKas tā ir
DockerfileTeksta fails ar soli pa solim instrukcijām attēla izveidei.
Attēls (image)Tikai lasāms pakotne: operētājsistēmas pamati, izpildvide, bibliotēkas un jūsu kods.
KonteinersDarbojošs attēla gadījums, izolēts no citām lietotnēm tajā pašā mašīnā.
ReģistrsVieta attēlu glabāšanai un kopīgošanai, piemēram, Docker Hub vai mākoņa pakalpojumu sniedzēja reģistrs.
Docker EngineFona serviss, kas veido attēlus un palaiž konteinerus. Bezmaksas un atvērtā koda.
Docker DesktopLietotne Mac, Windows un Linux, kas apvieno dzinēju ar grafisko saskarni.

Konteineri pret virtuālajām mašīnām: virtuālā mašīna liekas par veselu atsevišķu datoru ar savu operētājsistēmu, tāpēc tā ir smaga un lēni startē. Konteiners izmanto saimniekmašīnas operētājsistēmas kodolu un izolē tikai lietotni un tās failus, tāpēc tas parasti startē dažās sekundēs un patērē daudz mazāk atmiņas. Uz viena servera blakus var darboties daudzi konteineri.

Praktisks piemērs: neliels Python API

Pieņemsim, ka jūsu MI veidotājs izveidoja Python FastAPI backend rezervāciju lietotnei. Dockerfile varētu izskatīties šādi:

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"]

Rindu pa rindai:

RindaKo tā dara
FROM python:3.12-slimSāk no oficiāla attēla, kurā jau ir instalēts Python 3.12.
WORKDIR /appStrādā mapē /app konteinerā.
COPY requirements.txt . un RUN pip install ...Nokopē bibliotēku sarakstu un tās instalē.
COPY . .Nokopē lietotnes pašas kodu.
EXPOSE 8000Atzīmē, ka lietotne klausās portu 8000.
CMD [...]Komanda, kas startē tīmekļa serveri, kad konteiners darbojas.

Vienkāršos vārdos: „Sāc ar Python 3.12. Instalē bibliotēkas, kas uzskaitītas requirements.txt. Nokopē kodu. Palaid tīmekļa serveri uz porta 8000.”

Izstrādātājs (vai izvietošanas platforma) pēc tam izpilda divas komandas:

docker build -t booking-api .
docker run -p 8000:8000 booking-api

Pirmā izveido attēlu un to nosauc par booking-api. Otrā palaiž konteineru un savieno mašīnas portu 8000 ar porta 8000 konteinera iekšienē. API tagad darbojas — tieši tāpat kā darbosies jebkurā serverī, kur ir Docker.

Ievērojiet, kas attēlā nav iekļauts: paroles un API atslēgas. Tās tiek padotas, kad konteiners startē, kā vides mainīgie, tāpēc viens un tas pats attēls var darboties testēšanā un produkcijā ar atšķirīgiem iestatījumiem.

Galvenie termini

TerminsNozīme
KonteinersIzolēta, darbojoša lietotnes un tās atkarību pakotne.
AttēlsŠablons, no kura tiek palaists konteiners.
Bāzes attēlsSākumpunkts Dockerfile rindā FROM, piemēram, python:3.12-slim vai node:22.
SlānisKatrs Dockerfile solis pievieno kešatmiņā saglabātu slāni, kas padara atkārtotas veidošanas ātrākas.
Porta kartēšanaSaimniekmašīnas porta savienošana ar portu konteinera iekšienē.
Sējums (volume)Glabātuve, kas saglabājas, kad konteineru nomaina. Paši konteineri ir vienreizējās lietošanas.
Docker ComposeFails, kas apraksta vairākus kopā darbojošus konteinerus, piemēram, API un datubāzi.
KubernetesSistēma daudzu konteineru palaišanai daudzos serveros. Lielākajai daļai mazu lietotņu tas nav vajadzīgs.

Biežākie maldi

  • „Docker ir virtuālā mašīna.” Tas ir vieglāks: konteineri izmanto saimniekmašīnas kodolu.
  • „Dati, kas saglabāti konteinerā, ir droši.” Konteineri ir paredzēti izmest un nomainīt. Viss, kam jāpaliek — lietotāju dati, augšupielādes —, pieder datubāzei, failu glabātuvei vai sējumam.
  • „Noslēpumus Dockerfile ievietot ir pieļaujami, jo tas ir privāts.” Attēli tiek kopīgoti un augšupielādēti reģistros. Noslēpumus labāk padot izpildes laikā.
  • „Docker padara lietotni drošu.” Izolācija palīdz, bet konteiners ar novecojušu programmatūru un vājiem iestatījumiem joprojām ir neaizsargāts.
  • „Katrai lietotnei vajag Docker.” Statisku vietni vai vienkāršu frontend parasti hostē kā parastus failus, bez konteinera vispār.
  • „Docker Desktop ir bez maksas visiem.” Dzinējs ir bezmaksas; Docker noteikumi nosaka, ka Docker Desktop lielākiem uzņēmumiem nepieciešams maksas abonements.

Ko jautāt savam MI veidotājam

  • „Vai šai lietotnei vajag Dockerfile? Ja jā, paskaidro katru rindu vienkāršā valodā.”
  • „Izmanto mazu, oficiālu bāzes attēlu un piespraud valodas versiju.”
  • „Glabā noslēpumus ārpus attēla. Nolasi tos no vides mainīgajiem izpildes laikā.”
  • „Pārliecinies, ka augšupielādes un dati tiek glabāti datubāzē vai failu glabātuvē, nevis konteinerā.”
  • „Pievieno Docker Compose failu, lai izstrādātājs varētu palaist frontend, API un datubāzi lokāli ar vienu komandu.”
  • „Pievieno veselības pārbaudes galapunktu, lai hosts varētu noteikt, vai API darbojas.”

Docker Mythex

Lai lietotu Mythex, Docker nav jāinstalē un jāpalaiž. Jūsu projekts darbojas privātā mākoņa smilškastē, un, kad pieprasāt backend, kam vajadzīgs konteiners — piemēram, C#, Java vai pielāgots Node vai Python serviss —, Mythex raksta lietotni un Dockerfile, priekšskatī to smilškastē un izvieto, kad publicējat, bez hostinga uzstādīšanas (kā tiek izvēlēta tehnoloģija). Pro versijā varat eksportēt projektu vai sinhronizēt to ar GitHub un paņemt Dockerfile sev līdzi. Par to, kā backend un frontend sadarbojas, skatiet frontend pret backend.

Jautājumi

Kas ir Docker vienkāršiem vārdiem?

Docker ir rīks, kas iepako lietotni kopā ar visu, kas tai nepieciešams darbam — valodas izpildvidi, bibliotēkām un iestatījumiem — standartā vienībā, ko sauc par konteineru. Konteiners darbojas vienādi klēpjdatorā, testa serverī vai mākoņa hostā.

Kāda ir atšķirība starp Docker attēlu un konteineru?

Attēls ir iepakots, tikai lasāms šablons: lietotne un tās atkarības, kas izveidotas no Dockerfile. Konteiners ir šī attēla darbojoša kopija. No viena attēla var palaist daudzus konteinerus.

Vai Docker ir virtuālā mašīna?

Nē. Virtuālā mašīna emulē veselu datoru ar savu operētājsistēmu. Konteineri izmanto saimniekmašīnas operētājsistēmas kodolu un izolē tikai lietotni, tāpēc tie startē ātrāk un patērē mazāk atmiņas.

Vai Docker ir bezmaksas?

Docker Engine, kodols, kas palaiž konteinerus, ir bezmaksas un atvērtā koda. No 2026. gada septembra Docker noteikumi nosaka, ka Docker Desktop ir bez maksas nekomerciāliem atvērtā koda projektiem un uzņēmumiem ar mazāk nekā 250 darbiniekiem un mazāk nekā 10 miljonu ASV dolāru gada apgrozījumu; lielākiem uzņēmumiem nepieciešams maksas abonements.

Vai man jāmācās Docker, lai veidotu lietotni ar MI?

Parasti nē. Daudzi MI veidotāji konteinerus apstrādā paši. Ir noderīgi zināt, kas ir Dockerfile, lai saprastu, kā backend ir iepakots, un lai, ja eksportējat lietotni, varētu to palaist vai hostēt citur.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)