Mount Namespace
Taarifa Msingi
Nafasi ya kufunga ni kipengele cha kernel ya Linux kinachotoa kujitenga kwa sehemu za kufunga mfumo wa faili zinazoonekana na kikundi cha michakato. Kila nafasi ya kufunga ina seti yake ya sehemu za kufunga mfumo wa faili, na mabadiliko kwenye sehemu za kufunga kwenye nafasi moja hayawaathiri nafasi nyingine. Hii inamaanisha kuwa michakato inayotumia nafasi tofauti za kufunga inaweza kuwa na maoni tofauti ya muundo wa mfumo wa faili.
Nafasi za kufunga ni muhimu sana katika uwekaji wa kontena, ambapo kila kontena inapaswa kuwa na mfumo wake wa faili na usanidi, ukiwa umetengwa na kontena zingine na mfumo wa mwenyeji.
Jinsi inavyofanya kazi:
Wakati nafasi mpya ya kufunga inapoundwa, inaanzishwa na nakala ya sehemu za kufunga kutoka kwenye nafasi ya mzazi. Hii inamaanisha kuwa, wakati wa kuundwa, nafasi mpya inashiriki maoni sawa ya mfumo wa faili kama mzazi wake. Walakini, mabadiliko yoyote yanayofuata kwenye sehemu za kufunga ndani ya nafasi hayataathiri mzazi au nafasi nyingine.
Wakati michakato inapobadilisha sehemu ya kufunga ndani ya nafasi yake, kama vile kufunga au kufungua mfumo wa faili, mabadiliko ni ya ndani ya nafasi hiyo na hayawaathiri nafasi nyingine. Hii inaruhusu kila nafasi kuwa na muundo wake wa mfumo wa faili huru.
Michakato inaweza kuhamia kati ya nafasi kwa kutumia wito wa mfumo wa
setns()
, au kuunda nafasi mpya kwa kutumia wito wa mfumo waunshare()
auclone()
na bendera yaCLONE_NEWNS
. Wakati michakato inahamia kwenye nafasi mpya au kuunda moja, itaanza kutumia sehemu za kufunga zinazohusiana na nafasi hiyo.Vidokezo vya faili na inode vimeshiriki kati ya nafasi, maana yake ikiwa michakato katika nafasi moja ina kipeperushi cha faili kilichofunguliwa kinachoelekeza kwa faili, inaweza kupitisha kipeperushi hicho cha faili kwa michakato katika nafasi nyingine, na michakato yote itapata ufikiaji sawa wa faili hiyo. Walakini, njia ya faili inaweza kutofautiana kati ya nafasi hizo kutokana na tofauti katika sehemu za kufunga.
Maabara:
Unda Nafasi Tofauti
CLI
Kwa kusakinisha kipengele kipya cha mfumo wa faili ya /proc
ikiwa unatumia paramu --mount-proc
, unahakikisha kuwa kipengele kipya cha kufunga kina mtazamo sahihi na uliojitosheleza wa habari za mchakato maalum kwa kipengele hicho.
Docker
Angalia ni kwenye namespace gani mchakato wako uko
To check which namespace your process is in, you can use the following command:
Kuangalia ni kwenye namespace gani mchakato wako uko, unaweza kutumia amri ifuatayo:
This command will display the mount information for your process and filter the output to show only the lines containing "ns". The namespace information will be displayed in the output.
Amri hii itaonyesha habari ya kufunga kwa mchakato wako na kuchuja matokeo ili kuonyesha tu mistari inayohusiana na "ns". Habari ya namespace itaonyeshwa kwenye matokeo.
Tafuta majina yote ya nafasi za kufunga
```bash nsenter -m TARGET_PID --pid /bin/bash ``` Pia, unaweza **ingia kwenye namespace ya mchakato mwingine ikiwa wewe ni root**. Na huwezi **kuingia** kwenye namespace nyingine **bila kigeuzi** kinachoelekeza kwake (kama vile `/proc/self/ns/mnt`).
Kwa sababu vifungu vipya vinapatikana tu ndani ya namespace, ni muhimu kuzingatia kwamba namespace inaweza kuwa na habari nyeti ambayo inaweza kupatikana tu ndani yake.
Sakinisha kitu
Marejeo
Last updated