Unahariri usanidi wa WireGuard ndani ya kontena linaloendesha, inafanya kazi, na sasisho lijalo la image huifuta. Hakuna kitu kilichosanidiwa vibaya. Faili iliishi kwenye tabaka linaloweza kuandikwa la kontena, ambalo lipo kwa ajili ya nakala hiyo ya kontena pekee. Ulinganisho wa muhimu si zana ipi ya kutumia, bali ni pembejeo zipi ambazo usambazaji wako unatangaza. Kila kitu ulichohariri kwa mkono ni pembejeo ambalo usambazaji haujui.

Aina mbili za hali, moja inaweza kutupwa

Kontena lina tabaka linaloweza kuandikwa kwa mabadiliko yanayofanywa wakati wa uendeshaji, na tabaka hilo hutupwa kontena linapobadilishwa. Si hifadhi ya usanidi na si nakala rudufu. Image pamoja na pembejeo zilizotangazwa ni ufafanuzi kamili wa kile kinachoendesha.

Uliza ni faili zipi za VPN zilizotangazwa na zipi ni bahati mbaya:

docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpn

Diff huorodhesha kile kilichobadilika kwenye tabaka linaloweza kuandikwa, na hiyo ni seti kamili ya vitu vitakavyotoweka. Orodha ya mount huonyesha kile kinachobaki. Kulinganisha vyote viwili hujibu swali kabla ya kupoteza kitu.

Bind mount, volume yenye jina au secret: kila moja inalinda nini

Zote tatu zinaweza kubeba wasifu wa VPN, na zinatofautiana kwa nani anaweza kuusoma na kile kinachotokea wakati wa kubadilishwa.

MechanismSurvives recreationWho can read it
Writable layerNoAnyone with container access, until it is gone
Bind mountYes, while the host path existsWhatever the host permissions allow
Named volumeYes, until the volume is removedManaged by the runtime
SecretYes, as a declared inputThe container process, by design

Bind mount huweka ramani ya njia ya host, kwa hivyo faili inalindwa kama njia hiyo na inaonekana kadri ruhusa za host zinavyoruhusu. Volume yenye jina husimamiwa na runtime na inaendelea baada ya kontena kuondolewa, hivyo kuifanya kuwa chaguo salama zaidi kwa hali ambayo usambazaji unamiliki. Utaratibu wa secret ni kwa nyenzo ambazo hutaki ziwe kwenye image au kigeu cha mazingira.

Usichukulie kila kigeu cha mazingira na kila faili ya host kama ulinzi sawa, kwa sababu sivyo.

Kuhariri ndani ya kontena ndio mtego

Mtego si zana, ni mwelekeo wa uhariri. Mabadiliko yaliyofanywa ndani ya kontena linaloendesha hayaonekani kwa usambazaji, kwa hivyo uundaji mpya unaofuata huirudisha kimya kimya na dalili huonekana kama kushuka kwenye image. Ikiwa unapaswa kufanya mabadiliko hapo kwa uchunguzi, nakili nje mara moja na uweke kwenye pembejeo iliyotangazwa. Kisha unda tena ili kuthibitisha kuwa usambazaji unaizalisha tena.

Wasifu unaweza kubeba funguo za faragha na nyenzo za akaunti, hivyo kufanya nakala rudufu ya faili hiyo kuwa kazi ya usimamizi wa siri badala ya kunakili faili. Weka umiliki na ufikiaji wa kusoma ukiwa umezuiwa kwa mchakato halisi wa kontena, badala ya kupanua saraka ya host ili hitilafu ya ruhusa itoweke.

Upanuzi huo ndio unaofanya urahisi ndani ya kontena kuwa mfiduo wa host.

Unda upya kwa kusudi, kisha thibitisha mambo manne

Andika toleo la image, kifaa na uwezo vinavyohitajika, muunganisho wa mtandao na pembejeo za kudumu. Orodha ya kifaa na uwezo ni muhimu hasa kwa kontena la VPN, kwa sababu handaki linahitaji kifaa cha mtandao na uwezo wa kukisanidi.

Thibitisha ni hali ipi ya uendeshaji iliyozalishwa inapaswa kujengwa upya badala ya kuhifadhiwa. Funguo ambazo handaki lilizalisha mwanzoni ni hali, na uamuzi wa kuzihifadhi au kuzizalisha upya una athari kwa kila peer anayejua ufunguo wa umma wa zamani.

Baada ya uundaji mpya uliodhibitiwa, thibitisha utambulisho, uelekezaji, DNS na kizuizi cha kushindwa kinachohitajika. Mchakato unaoanza bila hitilafu hauthibitishi hata moja ya hayo manne. Kagua hilo wakati handaki likiwa hai na tena baada ya kulizuia, kwa sababu kizuizi cha kushindwa hujidhihirisha tu handaki linapotoweka.

Weka nakala ya urejeshaji nje ya kontena

Weka nakala ya urejeshaji inayoishi bila kutegemea kontena, na jaribu kuirejesha kupitia mchakato ulioandikwa. Nakala rudufu ya wasifu wa VPN ambayo haijajaribiwa ni matumaini, hasa wakati njia ya urejeshaji inahusisha ruhusa ambazo mchakato wa kontena unahitaji.

Ikiwa kontena linalomiliki VPN linabadilishwa, ratibu programu zinazoshiriki staki yake ya mtandao ndani ya mzunguko wa maisha unaoungwa mkono na runtime.

Uratibu huo ndio tofauti kati ya kuanzisha upya na kukatika. Usambazaji unapaswa kueleza usanidi unatoka wapi, na nyaraka za volume ndio mahali pa kukagua kile runtime inahifadhi kwa kweli.

Makala zinazohusiana