VPN-kokoonpano selviytyy kontin uudelleenluonnista vain, jos liität sen
Käynnissä olevan kontin sisällä muokattu tiedosto elää kerroksessa, joka katoaa. Vertaa bind-liitoksia, volumeja ja secretejä, luo sitten uudelleen ja tarkista neljä asiaa.
Muokkaat WireGuard-kokoonpanoa käynnissä olevan kontin sisällä, se toimii, ja seuraava image-päivitys pyyhkii sen. Mikään ei ollut väärin määritetty. Tiedosto eli kontin kirjoitettavassa kerroksessa, joka on olemassa vain kyseiselle kontti-instanssille. Tärkeä vertailu ei ole se, mitä työkalua käyttää, vaan se, mitkä syötteet käyttöönotto ilmoittaa. Kaikki, mitä muokkasit käsin, on syöte, josta käyttöönotto ei tiedä.
Kahdenlaista tilaa, toinen on kertakäyttöistä
Kontilla on kirjoitettava kerros ajonaikaisille muutoksille, ja se kerros hylätään, kun kontti korvataan. Se ei ole kokoonpanovarasto eikä varmuuskopio. Image ja ilmoitetut syötteet ovat koko määritelmä siitä, mitä ajetaan.
Kysy, mitkä VPN-tiedostosi ovat ilmoitettuja syötteitä ja mitkä sattumia:
docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpnDiff luettelee, mikä kirjoitettavassa kerroksessa muuttui, ja se on täsmälleen se joukko asioita, jotka katoavat. Liitosluettelo näyttää, mikä säilyy. Näiden kahden vertailu vastaa kysymykseen ennen kuin menetät mitään.
Bind-liitos, nimetty volume vai secret: mitä kukin suojaa
Kaikki kolme voivat pitää VPN-profiilia, ja ne eroavat siinä, kuka voi lukea sen ja mitä korvaamisessa tapahtuu.
| Mechanism | Survives recreation | Who can read it |
|---|---|---|
| Writable layer | No | Anyone with container access, until it is gone |
| Bind mount | Yes, while the host path exists | Whatever the host permissions allow |
| Named volume | Yes, until the volume is removed | Managed by the runtime |
| Secret | Yes, as a declared input | The container process, by design |
Bind-liitos kartoittaa isäntäpolun, joten tiedosto on yhtä suojattu kuin se polku ja yhtä näkyvä kuin isännän käyttöoikeudet sallivat. Nimettyä volumea hallinnoi runtime, ja se säilyy kontin poistamisen yli, mikä tekee siitä turvallisemman oletusvalinnan tilalle, jonka käyttöönotto omistaa. Secret-mekanismi on materiaalille, jota et halua imageen tai ympäristömuuttujaan.
Älä kohtele jokaista ympäristömuuttujaa ja isäntätiedostoa samanarvoisena suojana, koska ne eivät ole.
Kontin sisällä muokkaaminen on ansa
Ansa ei ole työkalu vaan muokkauksen suunta. Käynnissä olevan kontin sisällä tehty muutos on näkymätön käyttöönotolle, joten seuraava uudelleenluonti kääntää sen hiljaa takaisin ja oire näyttää regression image. Jos sinun on tehtävä sinne muutos diagnosointia varten, kopioi se heti ulos ja laita ilmoitettuun syötteeseen. Luo sitten uudelleen todistaaksesi, että käyttöönotto toistaa sen.
Profiili voi sisältää yksityisiä avaimia ja tilitietoja, mikä tekee sen tiedoston varmuuskopiosta salaisuuksien käsittelyn tehtävän tiedostokopion sijaan. Pidä omistus ja lukuoikeus rajattuna kontin todelliseen prosessiin sen sijaan, että avartaisit isäntäkansiota, jotta käyttöoikeusvirhe katoaisi.
Juuri se avartaminen muuttaa kontin mukavuuden isännän paljastumiseksi.
Luo tarkoituksella uudelleen ja tarkista sitten neljä asiaa
Kirjaa image-versio, tarvittava laite ja valmiudet, verkkoliitäntä ja pysyvät syötteet. Laite- ja valmiusluettelo on erityisen tärkeä VPN-kontille, koska tunneli tarvitsee verkkolaitteen ja oikeuden määrittää sen.
Vahvista, mikä luotu ajonaikainen tila pitää rakentaa uudelleen eikä tallentaa. Avaimet, jotka tunneli loi ensimmäisellä käynnistyksellä, ovat tilaa, ja päätös pitää ne tai luoda ne uudelleen vaikuttaa jokaiseen peeriin, joka tuntee vanhan julkisen avaimen.
Hallitun uudelleenluonnin jälkeen tarkista identiteetti, reititys, DNS ja vaadittu vikatilanteen esto. Prosessi, joka käynnistyy ilman virheitä, ei todista yhtäkään noista neljästä. Tarkista se, kun tunneli on päällä, ja uudelleen sen pysäyttämisen jälkeen, koska vikatilanteen esto näkyy vasta, kun tunneli katoaa.
Pidä palautuskopio kontin ulkopuolella
Pidä palautuskopio, joka elää kontista riippumatta, ja testaa sen palauttaminen dokumentoidun prosessin kautta. Testaamaton VPN-profiilin varmuuskopio on toive, erityisesti kun palautuspolku vaatii käyttöoikeuksia, joita kontin prosessi tarvitsee.
Jos VPN:n omistava kontti korvataan, koordinoi sen verkkopinoa jakavat sovellukset runtimen tukeman elinkaaren puitteissa.
Tämä koordinointi on ero uudelleenkäynnistyksen ja katkoksen välillä. Käyttöönoton tulisi kuvata, mistä kokoonpano tulee, ja volumejen dokumentaatio on paikka tarkistaa, mitä runtime todella säilyttää.