Du redigerer WireGuard-konfigurasjonen inne i ein køyrande container, det verkar, og den neste image-oppdateringa slettar han. Ingenting var feilkonfigurert. Fila budde i det skrivbare laget til containeren, som berre finst for den containerinstansen. Samanlikninga som betyr noko, er ikkje kva verktøy du brukar, men kva inndata utrullinga di erklærer. Alt du har redigert for hand, er inndata som utrullinga ikkje kjenner.

To slag tilstand, den eine er eingongs

Ein container har eit skrivbart lag for endringar gjorde ved køyring, og det laget blir kasta når containeren blir erstatta. Det er ikkje eit konfigurasjonslager og ikkje ein sikkerheitskopi. Imageet pluss dei erklærte inndataene er heile definisjonen av det som køyrer.

Spør kva av VPN-filene dine som er erklærte inndata, og kva som er tilfeldigheiter:

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

Diff viser kva som er endra i det skrivbare laget, og det er nettopp mengda av ting som vil forsvinne. Mount-oversynet viser kva som overlever. Å samanlikne dei to svarar på spørsmålet før du mistar noko.

Bind mount, namngjeve volum eller secret: kva kvar beskyttar

Alle tre kan halde ein VPN-profil, og dei skil seg i kven som kan lese han og kva som skjer ved erstatning.

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

Eit bind mount mappar ein vertssti, så fila er like godt verna som den stien og like synleg som rettane til verten tillèt. Eit namngjeve volum blir styrt av runtime og overlever fjerning av containeren, noko som gjer det til det tryggare standardvalet for tilstand som utrullinga eig. Ein secret-mekanisme er for materiale du ikkje vil ha i eit image eller ein miljøvariabel.

Ikkje handsam kvar miljøvariabel og kvar vertsfil som tilsvarande vern, for det er dei ikkje.

Å redigere inne i containeren er fella

Fella er ikkje verktøyet, men retninga på redigeringa. Ei endring gjord inne i ein køyrande container er usynleg for utrullinga, så den neste gjenskapinga rullar henne stille tilbake, og symptomet ser ut som ein regresjon i imageet. Viss du må endre noko der for å diagnostisere, kopier det ut med ein gong og legg det i den erklærte inndataen. Gjenskap deretter for å bevise at utrullinga reproduserer det.

Ein profil kan innehalde private nøklar og kontomateriale, noko som gjer ein sikkerheitskopi av den fila til ei oppgåve med handsaming av løyndomar i staden for ein filkopi. Hald eigarskap og lesetilgang avgrensa til den faktiske prosessen i containeren, i staden for å opne ei vertsmappe for å få ein tilgangsfeil til å forsvinne.

Den opninga er korleis ein bekvemmelegheit i containeren blir ei eksponering av verten.

Gjenskap med vilje, og verifiser deretter fire ting

Noter imageversjonen, eininga og eigenskapane som krevst, nettverkstilkoplinga og dei vedvarande inndataene. Lista over einingar og eigenskapar er særleg viktig for ein VPN-container, fordi tunnelen treng nettverkseininga og privilegiet til å konfigurere henne.

Stadfest kva generert køyretidstilstand som skal byggjast på nytt i staden for lagrast. Nøklane som tunnelen genererte ved første oppstart, er tilstand, og om du held på dei eller genererer dei på nytt, er eit val med konsekvensar for kvar peer som kjenner den gamle offentlege nøkkelen.

Etter ei kontrollert gjenskaping, verifiser identitet, ruting, DNS og den påkravde feilblokkeringa. Ein prosess som startar utan feil, beviser ingen av dei fire. Kontroller det medan tunnelen er oppe, og igjen etter at du har stoppa han, fordi feilblokkeringa berre viser seg når tunnelen forsvinn.

Hald ein gjenopprettingskopi utanfor containeren

Hald ein gjenopprettingskopi som lever uavhengig av containeren, og test å gjenopprette han gjennom den dokumenterte prosessen. Ein utesta sikkerheitskopi av ein VPN-profil er eit håp, særleg når gjenopprettingsvegen involverer løyve som containerprosessen treng.

Viss ein container som eig ein VPN blir erstatta, koordiner applikasjonane som deler nettverksstakken hans, innanfor den støtta livssyklusen til runtime.

Den koordineringa er skilnaden mellom ein omstart og eit avbrot. Utrullinga bør skildre kvar konfigurasjonen kjem frå, og volumpedokumentasjonen er staden å kontrollere kva runtime faktisk bevarer.

Relaterte artiklar