VPN yapılandırması, konteyner yeniden oluşturulduğunda yalnızca onu bağlarsanız hayatta kalır
Çalışan bir konteynerin içinde düzenlenen dosya, kaybolan bir katmanda yaşar. bind mount, volume ve secret karşılaştırın, ardından yeniden oluşturun ve dört şeyi doğrulayın.
Çalışan bir konteynerin içinde WireGuard yapılandırmasını düzenliyorsunuz, çalışıyor ve sonraki image güncellemesi onu siliyor. Hiçbir şey yanlış yapılandırılmamıştı. Dosya, konteynerin yalnızca o konteyner örneği için var olan yazılabilir katmanında yaşıyordu. Önemli olan karşılaştırma hangi aracı kullanacağınız değil, dağıtımınızın hangi girdileri bildirdiğidir. Elle düzenlediğiniz her şey, dağıtımın bilmediği bir girdidir.
İki tür durum, biri tek kullanımlık
Konteynerin çalışma zamanında yapılan değişiklikler için yazılabilir bir katmanı vardır ve bu katman konteyner değiştirildiğinde atılır. Bir yapılandırma deposu değildir ve yedek değildir. Image artı bildirilen girdiler, çalışan şeyin tam tanımıdır.
VPN dosyalarınızdan hangilerinin bildirilen girdi, hangilerinin tesadüf olduğunu sorun:
docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpnDiff, yazılabilir katmanda neyin değiştiğini listeler ve bu tam olarak kaybolacak şeyler kümesidir. Mount listesi neyin kaldığını gösterir. İkisini karşılaştırmak, bir şey kaybetmeden önce soruyu yanıtlar.
Bind mount, adlandırılmış volume veya secret: her biri neyi korur
Üçü de bir VPN profili tutabilir ve kimin okuyabileceği ile değiştirme sırasında ne olacağı bakımından farklıdır.
| 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 |
Bir bind mount bir host yolunu eşler, bu nedenle dosya o yol kadar korunur ve host izinlerinin izin verdiği kadar görünür. Adlandırılmış bir volume runtime tarafından yönetilir ve konteyner kaldırıldığında hayatta kalır, bu da onu dağıtımın sahip olduğu durum için daha güvenli varsayılan yapar. Bir secret mekanizması, bir image veya ortam değişkeninde istemediğiniz malzeme içindir.
Her ortam değişkenini ve her host dosyasını eşdeğer koruma olarak görmeyin, çünkü değiller.
Konteyner içinde düzenlemek tuzaktır
Tuzak araç değil, düzenlemenin yönüdür. Çalışan bir konteynerin içinde yapılan değişiklik dağıtım için görünmez, bu nedenle sonraki yeniden oluşturma onu sessizce geri alır ve belirti image içinde bir gerileme gibi görünür. Teşhis için orada bir şey değiştirmeniz gerekiyorsa hemen dışarı kopyalayın ve bildirilen girdiye koyun. Ardından dağıtımın onu yeniden ürettiğini kanıtlamak için yeniden oluşturun.
Bir profil özel anahtarlar ve hesap malzemesi taşıyabilir, bu da o dosyanın yedeğini dosya kopyası yerine gizli madde işleme görevi yapar. Sahipliği ve okuma erişimini konteynerin gerçek süreciyle sınırlı tutun, bir izin hatası kaybolsun diye host dizinini genişletmek yerine.
O genişletme, konteynerdeki kolaylığın host maruziyetine dönüşme biçimidir.
Bilinçli olarak yeniden oluşturun, ardından dört şeyi doğrulayın
Image sürümünü, gereken aygıtı ve yetenekleri, ağ bağlantısını ve kalıcı girdileri not edin. Aygıt ve yetenek listesi bir VPN konteyneri için özellikle önemlidir, çünkü tünel ağ aygıtına ve onu yapılandırma ayrıcalığına ihtiyaç duyar.
Hangi üretilen çalışma zamanı durumunun kaydedilmek yerine yeniden inşa edilmesi gerektiğini onaylayın. Tünelin ilk başlatmada ürettiği anahtarlar durumdur ve bunları tutmak veya yeniden üretmek, eski açık anahtarı bilen her peer için sonuçları olan bir karardır.
Kontrollü bir yeniden oluşturmadan sonra kimliği, yönlendirmeyi, DNS'i ve gereken hata bloğunu doğrulayın. Hatasız başlayan bir süreç bu dördünün hiçbirini kanıtlamaz. Tünel açıkken ve onu durdurduktan sonra tekrar kontrol edin, çünkü hata bloğu yalnızca tünel gittiğinde kendini gösterir.
Konteyner dışında bir kurtarma kopyası tutun
Konteynerden bağımsız yaşayan bir kurtarma kopyası tutun ve belgelenmiş süreçle geri yüklenmesini test edin. Test edilmemiş bir VPN profili yedeği bir umuttur, özellikle geri yükleme yolunda konteyner sürecinin ihtiyaç duyduğu izinler varsa.
VPN sahibi bir konteyner değiştirilirse, ağ yığınını paylaşan uygulamaları runtime'ın desteklediği yaşam döngüsü içinde koordine edin.
Bu koordinasyon, yeniden başlatma ile kesinti arasındaki farktır. Dağıtım yapılandırmanın nereden geldiğini açıklamalıdır ve volume belgeleri runtime'ın gerçekte neyi kalıcı tuttuğunu kontrol edeceğiniz yerdir.