Editas a configuración de WireGuard dentro dun contedor en execución, funciona, e a seguinte actualización da imaxe bórraa. Nada estaba mal configurado. O ficheiro vivía na capa de escritura do contedor, que só existe para esa instancia do contedor. A comparación que importa non é que ferramenta usar, senón que entradas declara o teu despregamento. Todo o que editaches a man é unha entrada que o despregamento non coñece.

Dous tipos de estado, un é desbotable

Un contedor ten unha capa de escritura para os cambios feitos en tempo de execución, e esa capa descártase cando o contedor se substitúe. Non é un almacén de configuración nin unha copia de seguridade. A imaxe máis as entradas declaradas son a definición completa do que se executa.

Pregúntate cales dos teus ficheiros de VPN son entradas declaradas e cales son accidentes:

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

O diff enumera que cambiou na capa de escritura, que é exactamente o conxunto de cousas que desaparecerán. A listaxe de montaxes mostra que sobrevive. Comparar os dous responde a pregunta antes de que perdas algo.

Bind mount, volume con nome ou segredo: que protexe cada un

Os tres poden conter un perfil de VPN, e difiren en quen pode lelo e que pasa na substitución.

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

Un bind mount asigna unha ruta do host, así que o ficheiro está tan protexido como o estea esa ruta e tan visible como o permitan os permisos do host. Un volume con nome xestiónao o runtime e sobrevive á eliminación do contedor, o que o converte na opción predeterminada máis segura para o estado que posúe o despregamento. Un mecanismo de segredo é para material que non queres nunha imaxe ou nunha variable de contorno.

Non trates cada variable de contorno e cada ficheiro do host como unha protección equivalente, porque non o son.

Editar dentro do contedor é a trampa

A trampa non é a ferramenta, senón a dirección da edición. Un cambio feito dentro dun contedor en execución é invisible para o despregamento, así que a seguinte recreación revérteo en silencio e o síntoma parece unha regresión na imaxe. Se debes facer un cambio alí para diagnosticar, cópiao fóra de inmediato e pono na entrada declarada. Logo recrea para demostrar que o despregamento o reproduce.

Un perfil pode levar chaves privadas e material de conta, o que fai que unha copia de seguridade dese ficheiro sexa unha tarefa de xestión de segredos en lugar dunha copia de ficheiro. Mantén a propiedade e o acceso de lectura limitados ao proceso real do contedor, en lugar de ampliar un directorio do host para que desapareza un erro de permisos.

Esa ampliación é como unha comodidade do contedor se converte nunha exposición do host.

Recrea a propósito e logo verifica catro cousas

Anota a versión da imaxe, o dispositivo e as capacidades necesarios, a conexión de rede e as entradas persistentes. A lista de dispositivo e capacidades importa especialmente para un contedor de VPN, porque o túnel necesita o dispositivo de rede e o privilexio para configuralo.

Confirma que estado xerado en tempo de execución debe reconstruírse en lugar de gardarse. As chaves que o túnel xerou no primeiro arranque son estado, e se as conservas ou as rexeneras é unha decisión con consecuencias para cada peer que coñece a clave pública antiga.

Tras unha recreación controlada, verifica identidade, encamiñamento, DNS e o bloqueo de fallo requirido. Un proceso que arrinca sen erros non demostra ningún deses catro. Compróbao mentres o túnel está activo e de novo despois de detelo, porque o bloqueo de fallo só se mostra cando o túnel desaparece.

Mantén unha copia de recuperación fóra do contedor

Mantén unha copia de recuperación que viva independentemente do contedor, e proba restaurala mediante o proceso documentado. Unha copia de seguridade non probada dun perfil de VPN é unha esperanza, sobre todo cando a ruta de restauración implica permisos que o proceso do contedor necesita.

Se se substitúe un contedor propietario dunha VPN, coordina as aplicacións que comparten a súa pila de rede dentro do ciclo de vida compatible do runtime.

Esa coordinación é a diferenza entre un reinicio e unha interrupción. O despregamento debería describir de onde vén a configuración, e a documentación de volumes é o lugar para comprobar que persiste realmente o runtime.

Artigos relacionados