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