VM los yog Docker?

Koj paub li cas yog tias koj xav tau Docker thiab tsis yog VM? Koj yuav tsum txiav txim siab seb koj xav cais dab tsi. Yog tias koj xav cais cov kab ke nrog kev lees paub cov peev txheej thiab cov khoom siv virtual, ces qhov kev xaiv yuav tsum yog VM. Yog tias koj xav tau cais cov ntawv thov khiav raws li cov txheej txheem cais, koj yuav xav tau Docker.

Yog li dab tsi yog qhov txawv ntawm Docker ntim thiab VMs?

Lub tshuab virtual (VM) yog lub khoos phis tawj virtual nrog txhua yam khoom siv virtual thiab lub hard disk virtual uas muaj kev ywj pheej tshiab OS tau nruab nrog rau cov tsav tsheb virtual, kev tswj hwm nco thiab lwm yam khoom. Ntawd yog, peb tau txais kev paub daws teeb meem ntawm lub cev kho vajtse uas tso cai rau peb khiav ntau lub khoos phis tawj virtual ntawm ib lub computer.
Ib qho VM ntsia tau tuaj yeem siv qhov chaw ntawm koj lub khoos phis tawj disk hauv ntau txoj hauv kev:

  • ruaj hard disk chaw, uas tso cai rau nkag mus rau lub virtual hard disk sai dua thiab zam cov ntaub ntawv fragmentation;
  • dynamic memory faib. Thaum txhim kho cov ntawv thov ntxiv, lub cim xeeb yuav raug faib rau lawv kom txog thaum nws nce mus txog qhov siab tshaj plaws faib rau nws.

Ntau lub tshuab virtual rau ib tus neeg rau zaub mov, ntau qhov chaw lawv siv, thiab tseem xav tau kev txhawb nqa tas li rau ib puag ncig xav tau rau koj daim ntawv thov khiav.

docker yog software tsim cov ntawv ntim khoom raws li cov ntawv thov. Cov thawv ntim khoom thiab cov tshuab virtual muaj cov txiaj ntsig zoo sib xws, tab sis ua haujlwm txawv. Cov thawv ntim khoom siv ntau qhov chaw vim ... rov siv dua cov peev txheej sib koom ntawm tus tswv tsev dua li VM, vim tsis zoo li VM, nws muab virtualization ntawm qib OS, tsis nyob rau theem kho vajtse. Txoj hauv kev no ua rau muaj kev nco qab qis dua, kev xa mus sai dua, thiab ua kom yooj yim dua.

Lub thawv muab lub tshuab ua haujlwm tau zoo dua rau kev siv cov ntawv thov los ntawm kev muab cov kev sib txuas tsim nyog rau lub party system. Qhov tshwj xeeb no tso cai rau cov thawv sib faib cov tub ntxhais ntawm lub kaw lus, nrog rau txhua lub thawv khiav raws li cov txheej txheem sib cais OS uas muaj nws tus kheej cov chaw nco (nws tus kheej qhov chaw nyob virtual). Txij li txhua lub thawv ntim qhov chaw nyob virtual yog nws tus kheej, cov ntaub ntawv sib txawv ntawm qhov chaw nco tsis tuaj yeem hloov pauv.
Cov haiv neeg OS rau Docker yog Linux (Docker kuj tuaj yeem siv rau ntawm Windows thiab MacOS), nws siv nws cov txiaj ntsig tseem ceeb, uas tso cai rau nws los teeb tsa cov ntsiav sib cais. Khiav Docker ntim ntawm Windows yuav tshwm sim hauv lub tshuab virtual uas siv Linux OS, vim ntim sib koom OS ntawm tus tswv system thiab lub ntsiab OS rau lawv yog Linux.

Thawv - nws ua haujlwm li cas?

Thawv yog ib daim ntawv thov-theem abstraction uas sib txuas cov cai thiab kev vam meej. Cov thawv ntim ib txwm tsim los ntawm cov duab, ntxiv cov txheej txheem sau ntawv sab saum toj thiab pib ua ntau yam tsis muaj. Vim hais tias ib lub thawv muaj nws tus kheej sau txheej thiab tag nrho cov kev hloov pauv tau khaws cia rau hauv cov txheej txheem, ntau lub thawv tuaj yeem sib koom nkag mus rau tib tus tswv duab.

Txhua lub thawv tuaj yeem teeb tsa los ntawm cov ntaub ntawv hauv qhov project docker-compose nrog rau hauv cov ntsiab lus tseem ceeb - docker-compose.yml. Nyob ntawd koj tuaj yeem teeb tsa ntau yam tsis xws li lub npe ntim, chaw nres nkoj, cov cim qhia, cov peev txheej txwv, kev nyob ntawm lwm lub ntim. Yog tias koj tsis qhia lub npe ntim hauv qhov chaw, Docker yuav tsim lub thawv tshiab txhua zaus, muab lub npe rau nws.

Thaum lub thawv pib los ntawm ib daim duab, Docker mounts ib qho kev nyeem-sau cov ntaub ntawv rau saum cov txheej hauv qab no. Qhov no yog qhov uas txhua tus txheej txheem peb xav kom peb lub thawv Docker khiav yuav khiav.

Thaum Docker thawj zaug pib lub thawv, thawj txheej nyeem-sau ntawv yog khoob. Thaum muaj kev hloov pauv, lawv raug siv rau txheej txheej no; Piv txwv li, yog tias koj xav hloov cov ntaub ntawv, cov ntaub ntawv ntawd yuav raug theej los ntawm txheej nyeem nkaus xwb hauv qab no mus rau txheej nyeem-sau.
Cov ntawv nyeem nkaus xwb ntawm cov ntaub ntawv tseem yuav muaj nyob, tab sis tam sim no nws tau muab zais rau hauv daim ntawv theej. Cov ntim yog siv los khaws cov ntaub ntawv, tsis hais lub neej voj voog ntawm lub thawv. Volumes yog pib thaum lub thawv tsim.

Daim duab cuam tshuam li cas rau lub thawv?

Duab - lub ntsiab tseem ceeb rau txhua lub thawv. Cov duab yog tsim los ntawm Dockerfile ntxiv rau qhov project thiab yog cov txheej txheem ntawm cov ntaub ntawv (txheej txheem) txheej nyob rau sab saum toj ntawm ib leeg thiab ua ke ua ke, nyeem nkaus xwb; Qhov ntau tshaj ntawm cov khaubncaws sab nraud povtseg yog 127.

Hauv plawv ntawm txhua daim duab yog lub hauv paus duab, uas tau teev tseg los ntawm FROM hais kom ua - lub ntsiab lus nkag thaum tsim cov duab Dockerfile. Txhua txheej yog ib txheej nyeem nkaus xwb thiab sawv cev los ntawm ib qho lus txib uas hloov kho cov ntaub ntawv, sau rau hauv Dockerfile.
Txhawm rau muab cov khaubncaws sab nraud povtseg rau hauv ib daim duab, Docker siv Advanced multi-layered Union cov ntaub ntawv kaw lus (AuFS yog tsim rau saum UnionFS), tso cai rau cov ntaub ntawv sib txawv thiab cov npe los ntawm cov ntaub ntawv sib txawv kom pob tshab, tsim kom muaj cov ntaub ntawv sib txuas.

Cov txheej txheem muaj cov metadata uas tso cai rau koj khaws cov ntaub ntawv ntsig txog txhua txheej thaum lub sijhawm ua haujlwm thiab tsim sijhawm. Txhua txheej muaj qhov txuas mus rau txheej tom ntej; yog tias ib txheej tsis muaj qhov txuas, ces nws yog txheej saum toj kawg nkaus hauv daim duab.

Dockerfile tuaj yeem muaj cov lus txib xws li:

  • NTAWM β€” nkag nkag thaum tsim ib daim duab;
  • MAINTAINER - lub npe ntawm tus tswv duab;
  • Khiav - hais kom ua tiav thaum lub sij hawm sib dhos duab;
  • ADD - luam cov ntaub ntawv tswv tsev rau ib daim duab tshiab; yog tias koj teev qhov URL ntawm cov ntaub ntawv, Docker yuav rub nws mus rau cov ntawv teev npe;
  • ENV - ib puag ncig hloov pauv;
  • CMD - pib tsim lub thawv tshiab raws li daim duab;
  • ENTRYPOINT - cov lus txib raug tua thaum lub thawv pib.
  • WORKDIR yog daim ntawv teev npe ua haujlwm rau kev ua tiav CMD hais kom ua.
  • USER - teeb tsa UID rau lub thawv tsim raws li daim duab.
  • VOLUME - mounts lub host directory rau hauv lub thawv.
  • EXPOSE yog ib pawg ntawm cov chaw nres nkoj mloog hauv lub thawv.

UnionFS ua haujlwm li cas?

UnionFS - utility stack file system (FS) rau Linux thiab FreeBSD. Qhov FS no siv cov txheej txheem theej-on-sau (Copy-On-Write, COW). Cov chav ua haujlwm ntawm UnionFS yog txheej txheej; txhua txheej yuav tsum raug suav tias yog cais cov ntaub ntawv tag nrho nrog cov hierarchy ntawm cov npe ntawm cov hauv paus nws tus kheej. UnionFS tsim ib lub koom haum mount rau lwm cov ntaub ntawv systems thiab tso cai rau cov ntaub ntawv thiab directory los ntawm txawv cov ntaub ntawv systems (hu ua forks) ua ke rau hauv ib tug tib coherent cov ntaub ntawv system, pob tshab rau tus neeg siv.

Cov ntsiab lus ntawm cov npe nrog tib txoj hauv kev yuav tshwm sim ua ke hauv ib qho kev sib koom ua ke (hauv ib lub npe chaw) ntawm cov ntaub ntawv ua tiav.

UnionFS muab cov khaubncaws sab nraud povtseg raws li cov hauv qab no:

  • ib qho ntawm cov khaubncaws sab nraud povtseg dhau los ua cov txheej txheem saum toj kawg nkaus, cov txheej thib ob thiab cov txheej tom ntej dhau los ua cov txheej txheem qis dua;
  • txheej khoom muaj rau cov neeg siv "los ntawm sab saum toj mus rau hauv qab", i.e. Yog hais tias cov khoom thov nyob rau hauv "sab saum toj" txheej, nws yuav rov qab, txawm hais tias muaj ib yam khoom nrog tib lub npe nyob rau hauv lub "hauv qab" txheej; txwv tsis pub cov khoom ntawm "hauv qab" txheej yog xa rov qab; yog tias qhov khoom thov tsis nyob ntawd lossis nyob ntawd, qhov yuam kev "Tsis muaj cov ntaub ntawv lossis cov npe ntawd" raug xa rov qab;
  • cov txheej txheem ua haujlwm yog "sab saum toj" ib qho, uas yog, txhua tus neeg siv cov kev hloov pauv cov ntaub ntawv tsuas yog cuam tshuam rau cov txheej txheem saum toj kawg nkaus, tsis cuam tshuam rau cov ntsiab lus ntawm cov txheej txheem qis.

Docker yog cov thev naus laus zis tshaj plaws rau kev siv cov thawv los khiav cov ntawv thov. Nws tau dhau los ua tus qauv hauv thaj teb, tsim ntawm cgroups thiab namespaces muab los ntawm Linux ntsiav.

Docker tso cai rau peb xa cov ntawv thov sai sai thiab ua kom zoo tshaj plaws ntawm kev siv cov ntaub ntawv los ntawm kev faib cov OS kernel ntawm txhua lub ntim, khiav raws li cov txheej txheem OS cais.

Tau qhov twg los: www.hab.com

Ntxiv ib saib