Mount Namespace
Basic Information
Mount namespace ni kipengele cha kernel ya Linux kinachotoa kutengwa kwa maeneo ya mfumo wa faili yanayoonekana na kundi la michakato. Kila mount namespace ina seti yake ya maeneo ya mfumo wa faili, na mabadiliko kwenye maeneo ya mount katika namespace moja hayathiri namespaces nyingine. Hii inamaanisha kwamba michakato inayofanya kazi katika namespaces tofauti inaweza kuwa na maoni tofauti ya hierarchi ya mfumo wa faili.
Mount namespaces ni muhimu sana katika uundaji wa kontena, ambapo kila kontena linapaswa kuwa na mfumo wake wa faili na usanidi, uliojitenga na kontena nyingine na mfumo wa mwenyeji.
How it works:
Wakati mount namespace mpya inaundwa, inaanzishwa na nakala ya maeneo ya mount kutoka namespace yake ya mzazi. Hii inamaanisha kwamba, wakati wa uundaji, namespace mpya inashiriki maoni sawa ya mfumo wa faili kama mzazi wake. Hata hivyo, mabadiliko yoyote yanayofuata kwenye maeneo ya mount ndani ya namespace hayatamathiri mzazi au namespaces nyingine.
Wakati mchakato unabadilisha eneo la mount ndani ya namespace yake, kama vile kuunganisha au kutenganisha mfumo wa faili, mabadiliko ni ya ndani kwa namespace hiyo na hayathiri namespaces nyingine. Hii inaruhusu kila namespace kuwa na hierarchi yake ya mfumo wa faili isiyoegemea.
Michakato inaweza kuhamasisha kati ya namespaces kwa kutumia wito wa mfumo wa
setns()
, au kuunda namespaces mpya kwa kutumia wito wa mfumo waunshare()
auclone()
na bendera yaCLONE_NEWNS
. Wakati mchakato unahamia kwenye namespace mpya au kuunda moja, utaanza kutumia maeneo ya mount yanayohusishwa na namespace hiyo.Vifunguo vya faili na inodes vinashirikiwa kati ya namespaces, ikimaanisha kwamba ikiwa mchakato katika namespace moja una funguo la faili lililo wazi linaloelekeza kwenye faili, linaweza kupitisha funguo hilo la faili kwa mchakato katika namespace nyingine, na michakato yote itapata faili hiyo hiyo. Hata hivyo, njia ya faili inaweza isiwe sawa katika namespaces zote mbili kutokana na tofauti katika maeneo ya mount.
Lab:
Create different Namespaces
CLI
Kwa kuunganisha mfano mpya wa mfumo wa /proc
ikiwa unatumia param --mount-proc
, unahakikisha kwamba mount namespace mpya ina mtazamo sahihi na uliojitegemea wa taarifa za mchakato zinazohusiana na namespace hiyo.
Docker
Angalia ni namespace ipi mchakato wako uko ndani yake
Pata majina yote ya Mount
Ingia ndani ya Mount namespace
Pia, unaweza tu kuingia katika nafasi nyingine ya mchakato ikiwa wewe ni root. Na huwezi kuingia katika nafasi nyingine bila desktopa inayorejelea hiyo (kama /proc/self/ns/mnt
).
Kwa sababu milima mipya inapatikana tu ndani ya nafasi, inawezekana kwamba nafasi ina taarifa nyeti ambazo zinaweza kupatikana tu kutoka ndani yake.
Pandisha kitu
References
Last updated