VM neu Dociwr?

Sut ydych chi'n gwybod a oes angen Dociwr arnoch chi ac nid VM? Mae angen i chi benderfynu beth yn union yr ydych am ei ynysu. Os ydych chi am ynysu system gydag adnoddau pwrpasol gwarantedig a chaledwedd rhithwir, yna VM ddylai'r dewis fod. Os oes angen i chi ynysu rhedeg cymwysiadau fel prosesau system ar wahân, bydd angen Docker arnoch chi.

Felly beth yw'r gwahaniaeth rhwng cynwysyddion Docker a VMs?

Peiriant rhithwir (VM) yn gyfrifiadur rhithwir gyda'r holl ddyfeisiau rhithwir a disg galed rhithwir y mae OS annibynnol newydd wedi'i osod arno ynghyd â gyrwyr dyfeisiau rhithwir, rheoli cof a chydrannau eraill. Hynny yw, rydym yn cael tyniad o galedwedd ffisegol sy'n ein galluogi i redeg llawer o gyfrifiaduron rhithwir ar un cyfrifiadur.
Gall VM sydd wedi'i osod gymryd lle ar ddisg eich cyfrifiadur mewn gwahanol ffyrdd:

  • gofod disg caled sefydlog, sy'n caniatáu mynediad cyflymach i'r ddisg galed rithwir ac yn osgoi darnio ffeiliau;
  • dyraniad cof deinamig. Wrth osod cymwysiadau ychwanegol, bydd cof yn cael ei ddyrannu'n ddeinamig ar eu cyfer nes iddo gyrraedd yr uchafswm a ddyrennir iddo.

Po fwyaf o beiriannau rhithwir fesul gweinydd, y mwyaf o le y maent yn ei gymryd, a hefyd mae angen cefnogaeth gyson ar gyfer yr amgylchedd sydd ei angen i'ch cais redeg.

Docker yn feddalwedd ar gyfer creu cymwysiadau seiliedig ar gynhwysydd. Mae gan gynwysyddion a pheiriannau rhithwir fanteision tebyg, ond maent yn gweithredu'n wahanol. Mae cynwysyddion yn cymryd llai o le oherwydd... ailddefnyddio mwy o adnoddau a rennir y system letyol na'r VM, oherwydd yn wahanol i VM, mae'n darparu rhithwiroli ar lefel OS, nid ar lefel caledwedd. Mae'r dull hwn yn arwain at ôl troed cof is, defnydd cyflymach, a graddio haws.

Mae'r cynhwysydd yn darparu mecanwaith mwy effeithlon ar gyfer amgáu cymwysiadau trwy ddarparu'r rhyngwynebau angenrheidiol i'r system westeiwr. Mae'r nodwedd hon yn caniatáu i gynwysyddion rannu craidd y system, gyda phob cynhwysydd yn rhedeg fel proses OS gwesteiwr ar wahân sydd â'i set ei hun o feysydd cof (ei ofod cyfeiriad rhithwir ei hun). Gan fod gofod cyfeiriad rhithwir pob cynhwysydd yn un ei hun, ni ellir newid data sy'n perthyn i wahanol feysydd cof.
Yr OS brodorol ar gyfer Docker yw Linux (gellir defnyddio Docker hefyd ar Windows a MacOS), mae'n defnyddio ei brif fanteision, sy'n caniatáu iddo drefnu'r gwahaniad cnewyllyn. Bydd rhedeg cynwysyddion Docker ar Windows yn digwydd y tu mewn i beiriant rhithwir sy'n rhedeg Linux OS, oherwydd mae cynwysyddion yn rhannu OS y system letyol a'r prif OS ar eu cyfer yw Linux.

Cynhwysydd - sut mae'n gweithio?

Cynhwysydd yn dyniad lefel cais sy'n cyfuno cod a dibyniaethau. Mae cynwysyddion bob amser yn cael eu creu o ddelweddau, gan ychwanegu haen uchaf y gellir ei hysgrifennu a chychwyn paramedrau amrywiol. Oherwydd bod gan gynhwysydd ei haen ysgrifennu ei hun a bod pob newid yn cael ei storio yn yr haen honno, gall cynwysyddion lluosog rannu mynediad i'r un prif ddelwedd.

Gellir ffurfweddu pob cynhwysydd trwy ffeil yn y prosiect docker-compose sydd wedi'i gynnwys yn y prif ddatrysiad - docker-compose.yml. Yno, gallwch osod paramedrau amrywiol megis enw cynhwysydd, porthladdoedd, dynodwyr, terfynau adnoddau, dibyniaethau rhwng cynwysyddion eraill. Os na fyddwch yn nodi enw cynhwysydd yn y gosodiadau, bydd Docker yn creu cynhwysydd newydd bob tro, gan roi enw iddo ar hap.

Pan ddechreuir cynhwysydd o ddelwedd, mae Docker yn gosod system ffeiliau darllen-ysgrifennu ar ben unrhyw haenau isod. Dyma lle bydd yr holl brosesau yr ydym am i'n cynhwysydd Docker eu rhedeg yn rhedeg.

Pan fydd Docker yn cychwyn cynhwysydd am y tro cyntaf, mae'r haen darllen-ysgrifennu gychwynnol yn wag. Pan fydd newidiadau yn digwydd, cânt eu cymhwyso i'r haen hon; er enghraifft, os ydych am newid ffeil, bydd y ffeil honno'n cael ei chopïo o'r haen darllen yn unig isod i'r haen darllen-ysgrifennu.
Bydd y fersiwn darllen yn unig o'r ffeil yn dal i fodoli, ond mae bellach wedi'i chuddio o dan y copi. Defnyddir cyfeintiau i storio data, waeth beth yw cylch bywyd y cynhwysydd. Mae cyfeintiau'n cael eu cychwyn pan fydd y cynhwysydd yn cael ei greu.

Sut mae'r ddelwedd yn gysylltiedig â'r cynhwysydd?

Delwedd - y brif elfen ar gyfer pob cynhwysydd. Crëir y ddelwedd o Dockerfile a ychwanegwyd at y prosiect ac mae'n set o systemau ffeil (haenau) wedi'u haenu ar ben ei gilydd ac wedi'u grwpio gyda'i gilydd, yn ddarllen-yn-unig; y nifer uchaf o haenau yw 127.

Wrth wraidd pob delwedd mae delwedd sylfaenol, a bennir gan y gorchymyn FROM - y pwynt mynediad wrth adeiladu delwedd Dockerfile. Mae pob haen yn haen darllen yn unig ac fe'i cynrychiolir gan un gorchymyn sy'n addasu'r system ffeiliau, wedi'i ysgrifennu mewn Dockerfile.
I gyfuno'r haenau hyn yn un ddelwedd, mae Docker yn defnyddio system ffeiliau Undeb aml-haenog Uwch (mae AuFS wedi'i adeiladu ar ben UnionFS), gan ganiatáu i wahanol ffeiliau a chyfeiriaduron o wahanol haenau ffeil gael eu troshaenu'n dryloyw, gan greu system ffeiliau gydlynol.

Mae haenau'n cynnwys metadata sy'n eich galluogi i storio gwybodaeth gysylltiedig am bob haen yn ystod amser rhedeg ac amser adeiladu. Mae pob haen yn cynnwys dolen i'r haen nesaf; os nad oes gan haen ddolen, yna dyma'r haen uchaf yn y ddelwedd.

Gall y Dockerfile gynnwys gorchmynion fel:

  • O — pwynt mynediad wrth ffurfio delwedd;
  • CYNHALYDD - enw perchennog y ddelwedd;
  • RUN - gweithredu gorchymyn yn ystod cydosod delwedd;
  • ADD - copïo'r ffeil gwesteiwr i ddelwedd newydd; os ydych chi'n nodi URL y ffeil, bydd Docker yn ei lawrlwytho i'r cyfeiriadur penodedig;
  • ENV - newidynnau amgylchedd;
  • CMD - yn dechrau creu cynhwysydd newydd yn seiliedig ar y ddelwedd;
  • ENTRYPOINT - gweithredir y gorchymyn pan fydd y cynhwysydd yn cychwyn.
  • WORKDIR yw'r cyfeiriadur gweithio ar gyfer gweithredu'r gorchymyn CMD.
  • DEFNYDDWYR - yn gosod yr UID ar gyfer y cynhwysydd a grëwyd yn seiliedig ar y ddelwedd.
  • CYFROL - yn gosod y cyfeiriadur gwesteiwr yn y cynhwysydd.
  • Mae EXPOSE yn set o borthladdoedd y gwrandewir arnynt yn y cynhwysydd.

Sut mae UnionFS yn gweithio?

UndebFS - system ffeiliau pentwr cyfleustodau (FS) ar gyfer Linux a FreeBSD. Mae'r FS hwn yn gweithredu mecanwaith copi-ar-ysgrifennu (Copy-On-Write, COW). Mae uned weithredol UnionFS yn haen; dylid ystyried pob haen fel system ffeiliau gyflawn ar wahân gyda hierarchaeth o gyfeiriaduron o'r gwraidd ei hun. Mae UnionFS yn creu mownt undeb ar gyfer systemau ffeiliau eraill ac yn caniatáu cyfuno ffeiliau a chyfeiriaduron o systemau ffeil gwahanol (a elwir yn ffyrc) i mewn i un system ffeiliau gydlynol, yn dryloyw i'r defnyddiwr.

Bydd cynnwys cyfeiriaduron gyda'r un llwybrau yn ymddangos gyda'i gilydd mewn un cyfeiriadur unedig (mewn un gofod enw) o'r system ffeiliau canlyniadol.

Mae UnionFS yn cyfuno haenau yn seiliedig ar yr egwyddorion canlynol:

  • mae un o'r haenau yn dod yn haen lefel uchaf, mae'r ail haenau a'r haenau dilynol yn dod yn haenau lefel is;
  • gwrthrychau haen ar gael i’r defnyddiwr “o’r top i’r gwaelod”, h.y. os yw'r gwrthrych y gofynnwyd amdano yn yr haen “top”, caiff ei ddychwelyd, waeth beth fo presenoldeb gwrthrych gyda'r un enw yn yr haen “gwaelod”; fel arall dychwelir gwrthrych yr haen “gwaelod”; os nad yw'r gwrthrych y gofynnwyd amdano yno nac yno, dychwelir y gwall "Dim ffeil neu gyfeiriadur o'r fath";
  • yr haen waith yw'r un “uchaf”, hynny yw, dim ond ar yr haen lefel uchaf y mae holl gamau gweithredu defnyddwyr i newid data yn cael eu hadlewyrchu, heb effeithio ar gynnwys yr haenau o lefelau is.

Docker yw'r dechnoleg fwyaf cyffredin ar gyfer defnyddio cynwysyddion i redeg cymwysiadau. Mae wedi dod yn safon yn y maes, gan adeiladu ar y cgroups a'r gofodau enwau a ddarperir gan y cnewyllyn Linux.

Mae Docker yn caniatáu inni ddefnyddio cymwysiadau yn gyflym a gwneud y defnydd gorau o'r system ffeiliau trwy rannu'r cnewyllyn OS ymhlith yr holl gynwysyddion, gan redeg fel prosesau OS ar wahân.

Ffynhonnell: hab.com

Ychwanegu sylw