VM, Docker ranei?

Me pehea koe e mohio ana mena kei te hiahia koe ki a Docker engari ehara i te VM? Me whakatau koe he aha te mea e hiahia ana koe ki te wehe. Mena kei te pirangi koe ki te wehe i tetahi punaha me nga rauemi kua whakatapua me nga taputapu mariko, katahi ko te whiriwhiri he VM. Mena ka hiahia koe ki te wehe i nga tono whakahaere hei punaha punaha motuhake, me hiahia koe ki a Docker.

Na he aha te rereketanga i waenga i nga ipu Docker me nga VM?

Miihini mariko (VM) he rorohiko mariko me nga taputapu mariko katoa me te kōpae mariko mariko e whakaurua ai he OS motuhake hou me nga taraiwa taputapu mariko, te whakahaere mahara me etahi atu waahanga. Arā, ka whiwhi tatou i te tangohanga o nga taputapu tinana e taea ai e tatou te whakahaere i nga rorohiko mariko maha ki runga rorohiko kotahi.
Ka taea e te VM kua whakauruhia he mokowā ki te kōpae o to rorohiko i nga huarahi rereke:

  • mokowā kōpae mārō kua whakaritea, e tere ake ai te uru ki te kōpae mārō mariko me te karo i te wehewehenga kōnae;
  • tohatoha mahara hihiri. I te wa e whakauru ana i nga tono taapiri, ka tohatohahia te mahara ki a raatau kia tae ra ano ki te rahinga nui kua tohaina ki a ia.

Ko te nui ake o nga miihini mariko mo ia tūmau, ka nui ake te waahi ka tangohia, me te hiahia tautoko tonu mo te taiao e hiahiatia ana mo to tono kia rere.

Docker he raupaparorohiko mo te hanga tono-a-waa. He rite nga painga o nga ipu me nga miihini mariko, engari he rereke te mahi. He iti ake te waahi o nga ipu na te mea... whakamahia ano nga rauemi tiritahi o te punaha manaaki i te VM, na te mea kaore i rite ki te VM, ka whakaratohia te mariko i te taumata OS, kaore i te taumata taputapu. Ko tenei huarahi ka iti ake te tapuwae mahara, te tuku tere, me te ngawari o te tauine.

Ka whakaratohia e te ipu he tikanga pai ake mo te whakauru i nga tono ma te whakarato i nga hononga e tika ana ki te punaha manaaki. Ma tenei ahuatanga ka taea e nga ipu te tiri i te kaupapa matua o te punaha, me ia ipu e rere ana hei punaha whakahaere OS motuhake kei a ia ano nga waahanga maumahara (ona ake waahi waahi mariko). I te mea kei a ia ake te mokowā wāhitau mariko o ia ipu, kaore e taea te whakarereke i nga raraunga o nga waahi mahara rereke.
Ko te OS taketake mo Docker ko Linux (ka taea hoki te whakamahi a Docker ki runga i te Matapihi me te MacOS), ka whakamahia e ia ona painga matua, ka taea e ia te whakarite i te wehenga kernel. Ko te whakahaere i nga ipu Docker i runga i te Matapihi ka mahia i roto i tetahi miihini mariko e whakahaere ana i te Linux OS, na te mea Ka tohatohahia e nga ipu te OS o te punaha manaaki me te OS matua mo ratou ko Linux.

Ipu - pehea te mahi?

Putea he tangohanga taumata-tono e whakakotahi ana i te waehere me nga whakawhirinakitanga. I nga wa katoa ka hangaia nga ipu mai i nga whakaahua, ka taapirihia he paparanga o runga ka taea te tuhi me te arawhiti i nga momo tawhā. Na te mea kei te ipu tana ake paparanga tuhi ka penapena katoa nga huringa ki taua paparanga, ka taea e nga ipu maha te tiri uru ki te ahua rangatira kotahi.

Ka taea te whirihora ia ipu ma te konae kei te kaupapa docker-compose kei roto i te otinga matua - docker-compose.yml. I reira ka taea e koe te whakarite i nga momo tawhā penei i te ingoa ipu, tauranga, tohu tohu, tepe rauemi, whakawhirinaki i waenga i etahi atu ipu. Ki te kore koe e whakapūtā i te ingoa ipu i roto i nga tautuhinga, ka hangaia e Docker he ipu hou ia wa, ka hoatu he ingoa matapōkeretia.

Ina timata te ipu mai i tetahi ahua, ka whakairihia e Docker he punaha konae panui-tuhi ki runga ake o nga papa o raro. Koinei te waahi ka rere nga tukanga katoa e hiahia ana matou kia rere ta matou ipu Docker.

I te wa tuatahi ka timata a Docker i tetahi ipu, ka noho kau te paparanga panui-tuhi tuatahi. Ka puta nga huringa, ka tukuna ki tenei paparanga; hei tauira, ki te hiahia koe ki te huri i tetahi konae, ka kapea taua konae mai i te paparanga panui-anake i raro ki te paparanga panui-tuhi.
Ka noho tonu te putanga panui-anake o te konae, engari kua huna inaianei i raro i te kape. Ka whakamahia nga pukapuka ki te penapena raraunga, ahakoa te huringa ora o te ipu. Ka arawhitihia nga pukapuka i te wa i hangaia ai te ipu.

He pehea te hononga o te ahua ki te ipu?

Atahanga — te huānga matua mo ia ipu. He mea hanga te ahua mai i te Dockerfile kua taapirihia ki te kaupapa, he huinga punaha konae (paparanga) kua paparanga ki runga ake o tetahi ki tetahi, ka whakarōpūhia, panui-anake; ko te 127 te nuinga o nga papa.

Kei te ngakau o ia ahua he ahua taketake, kua tohua e te whakahau FROM - te urunga i te wa e hanga ana te ahua Dockerfile. Ko ia paparanga he paparanga panui anake, ka whakaatuhia e te tono kotahi e whakarereke ana i te punaha konae, kua tuhia ki roto i te Dockerfile.
Hei whakakotahi i enei paparanga ki te ahua kotahi, ka whakamahi a Docker i te punaha konae a te Uniana nga paparanga maha Arā (He mea hanga te AuFS ki runga ake o UnionFS), ka taea te whakakikorua i nga konae me nga raarangi rereke mai i nga paparanga konae rereke, ka hangaia he punaha konae whakakotahi.

Kei roto i nga paparanga metadata e taea ai e koe te penapena korero e pa ana ki ia paparanga i te wa whakahaere me te wa hanga. Kei ia paparanga he hononga ki te paparanga e whai ake nei; ki te kore he hononga o tetahi paparanga, ko te paparanga runga rawa atu o te ahua.

Kei roto pea i te Dockerfile nga tono penei:

  • FROM — wāhi urunga ina hanga whakaahua;
  • MAINTAINER - ingoa o te kaipupuri whakaahua;
  • RUN - te whakahaere whakahau i te wa o te huihuinga whakaahua;
  • ADD - te kape i te konae kaihautu ki tetahi ahua hou; mena ka tohua e koe te URL o te konae, ka tangohia e Docker ki te raarangi kua tohua;
  • ENV - taurangi taiao;
  • CMD - ka timata te hanga i tetahi ipu hou i runga i te ahua;
  • ENTRYPOINT - ka mahia te whakahau ina timata te ipu.
  • Ko WORKDIR te raarangi mahi mo te whakahaere i te whakahau CMD.
  • USER - ka tautuhi i te UID mo te ipu i hangaia i runga i te ahua.
  • VOLUME - ka whakairihia te whaiaronga kaihautu ki roto i te ipu.
  • Ko te EXPOSE he huinga tauranga e whakarongohia ana i roto i te ipu.

Me pehea te mahi a UnionFS?

UnionFS - pūnaha kōnae tāpae whaipainga (FS) mō Linux me FreeBSD. Ka whakatinanahia e tenei FS he tikanga kape-i-tuhi (Copy-On-Write, COW). Ko te waeine mahi o UnionFS he paparanga; me whakaaro ia paparanga he punaha konae tuuturu motuhake me nga raarangi whaiaronga mai i te putake ake. Ka hangaia e UnionFS he huinga uniana mo etahi atu punaha konae me te tuku i nga konae me nga raarangi mai i nga punaha konae rereke (e kiia ana ko nga marau) kia whakakotahi ki te punaha konae kotahi, kia marama ki te kaiwhakamahi.

Ko nga ihirangi o nga whaiaronga he rite nga ara ka puta tahi i roto i te raarangi whakakotahi (i roto i te mokowāingoa kotahi) o te punaha konae ka puta.

Ka whakakotahihia e UnionFS nga paparanga i runga i nga kaupapa e whai ake nei:

  • ko tetahi o nga paparanga ka noho hei paparanga taumata-runga, ko te tuarua me nga paparanga o muri mai ka noho hei papa taumata-iti;
  • Ko nga mea paparanga e waatea ana ki te kaiwhakamahi "mai i runga ki raro", i.e. mehemea kei roto i te paparanga "runga" te mea i tonoa, ka whakahokia mai, ahakoa te ahua o tetahi mea he rite te ingoa ki te paparanga "raro"; ki te kore ka whakahokia mai te mea o te paparanga "raro"; mena karekau te mea i tonoa, karekau ranei i kona, ka whakahokia te hapa "Kaore he konae, he whaiaronga" ranei;
  • ko te paparanga mahi ko te "runga", ara, ko nga mahi a nga kaiwhakamahi katoa ki te whakarereke i nga raraunga ka whakaatuhia anake i runga i te paparanga o runga, me te kore e pa ki nga ihirangi o nga papa o raro.

Ko Docker te hangarau tino noa mo te whakamahi ipu hei whakahaere tono. Kua waiho hei paerewa i roto i te mara, te hanga i runga i nga cgroups me nga waahi ingoa e whakaratohia ana e te kernel Linux.

Ka taea e Docker te tuku tere i nga tono me te whakamahi pai i te punaha konae ma te wehewehe i te kernel OS ki roto i nga ipu katoa, e rere ana hei tikanga OS motuhake.

Source: will.com

Tāpiri i te kōrero