VPN कन्फिगरेसन कन्टेनर पुनःनिर्माणमा टिक्छ मात्र यदि तपाईंले यसलाई माउन्ट गर्नुहुन्छ
चलिरहेको कन्टेनरभित्र सम्पादित फाइल हराउने तहमा बस्छ। bind mount, volume र secret तुलना गर्नुहोस्, त्यसपछि पुनःनिर्माण गरी चार कुरा जाँच्नुहोस्।
तपाईं चलिरहेको कन्टेनरभित्र WireGuard कन्फिगरेसन सम्पादन गर्नुहुन्छ, यो चल्छ, र अर्को image अद्यावधिकले यसलाई मेटाउँछ। केही पनि गलत कन्फिगर भएको थिएन। फाइल कन्टेनरको लेख्न मिल्ने तहमा बस्थ्यो, जुन त्यो कन्टेनर उदाहरणका लागि मात्र अवस्थित हुन्छ। महत्त्वपूर्ण तुलना कुन उपकरण प्रयोग गर्ने होइन, तर तपाईंको तैनातीले कुन इनपुट घोषणा गर्छ भन्ने हो। तपाईंले हातले सम्पादन गरेको सबै कुरा तैनातीलाई थाहा नभएको इनपुट हो।
दुई प्रकारको स्थिति, एउटा बेकामे
कन्टेनरमा रनटाइममा गरिएका परिवर्तनका लागि लेख्न मिल्ने तह हुन्छ, र कन्टेनर बदलिँदा त्यो तह फ्याँकिन्छ। यो कन्फिगरेसन भण्डार होइन र ब्याकअप पनि होइन। image र घोषित इनपुट नै के चल्छ भन्ने पूर्ण परिभाषा हुन्।
तपाईंका कुन VPN फाइल घोषित इनपुट हुन् र कुन संयोग हुन् भनी सोध्नुहोस्:
docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpndiff ले लेख्न मिल्ने तहमा के परिवर्तन भयो सूचीबद्ध गर्छ, र त्यो ठ्याक्कै हराउने कुराहरूको समूह हो। mount सूचीले के टिक्छ देखाउँछ। दुवैको तुलनाले केही गुमाउनुअघि प्रश्नको उत्तर दिन्छ।
bind mount, नामित volume वा secret: प्रत्येकले के सुरक्षित गर्छ
तीनैले VPN प्रोफाइल राख्न सक्छन्, र तिनीहरू कसले पढ्न सक्छ र प्रतिस्थापनमा के हुन्छ भन्नेमा भिन्न छन्।
| 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 mount ले होस्ट मार्ग म्याप गर्छ, त्यसैले फाइल त्यो मार्ग जति सुरक्षित छ त्यति सुरक्षित र होस्टका अनुमतिले दिएसम्म देखिने हुन्छ। नामित volume रनटाइमले व्यवस्थापन गर्छ र कन्टेनर हटाउँदा पनि टिक्छ, जसले यसलाई तैनातीको स्वामित्वको स्थितिका लागि सुरक्षित पूर्वनिर्धारित बनाउँछ। secret संयन्त्र त्यस्तो सामग्रीका लागि हो जुन तपाईं image वा environment variable मा चाहनुहुन्न।
प्रत्येक environment variable र प्रत्येक होस्ट फाइललाई समान सुरक्षा नमान्नुहोस्, किनभने तिनीहरू होइनन्।
कन्टेनरभित्र सम्पादन नै जाल हो
जाल उपकरण होइन, सम्पादनको दिशा हो। चलिरहेको कन्टेनरभित्र गरिएको परिवर्तन तैनातीलाई अदृश्य हुन्छ, त्यसैले अर्को पुनःनिर्माणले यसलाई चुपचाप फर्काउँछ र लक्षण image मा रिग्रेसनजस्तो देखिन्छ। निदानका लागि त्यहाँ परिवर्तन गर्नैपर्ने भए तुरुन्तै बाहिर प्रतिलिपि गरी घोषित इनपुटमा राख्नुहोस्। त्यसपछि पुनःनिर्माण गरी तैनातीले यसलाई पुनरुत्पादन गर्छ भनी प्रमाणित गर्नुहोस्।
प्रोफाइलमा निजी कुञ्जी र खाता सामग्री हुन सक्छ, जसले त्यो फाइलको ब्याकअपलाई फाइल प्रतिलिपिको सट्टा गोप्य हेरचाहको काम बनाउँछ। स्वामित्व र पढ्ने पहुँच कन्टेनरको वास्तविक प्रक्रियामा सीमित राख्नुहोस्, अनुमति त्रुटि हटाउन होस्ट डाइरेक्टरी फराकिलो बनाउनुको सट्टा।
त्यही फराकिलो बनाउनु कन्टेनरको सुविधालाई होस्टको खुलासामा बदल्छ।
जानाजान पुनःनिर्माण गर्नुहोस्, त्यसपछि चार कुरा जाँच्नुहोस्
image संस्करण, आवश्यक यन्त्र र क्षमता, नेटवर्क जडान र स्थायी इनपुट लेख्नुहोस्। यन्त्र र क्षमताको सूची VPN कन्टेनरका लागि विशेष महत्त्वपूर्ण छ, किनभने सुरुङलाई नेटवर्क यन्त्र र त्यसलाई कन्फिगर गर्ने विशेषाधिकार चाहिन्छ।
कुन उत्पन्न रनटाइम स्थिति सुरक्षित गर्नुको सट्टा पुनःनिर्माण गर्नुपर्छ भनी पुष्टि गर्नुहोस्। सुरुङले पहिलो सुरुवातमा उत्पन्न गरेका कुञ्जी स्थिति हुन्, र तिनीहरूलाई राख्ने वा पुनः उत्पन्न गर्ने भन्ने निर्णयको असर पुरानो सार्वजनिक कुञ्जी जान्ने प्रत्येक peer मा पर्छ।
नियन्त्रित पुनःनिर्माणपछि पहिचान, रुटिङ, DNS र आवश्यक असफलता-ब्लक जाँच्नुहोस्। त्रुटिविना सुरु हुने प्रक्रियाले यी चारमध्ये एउटा पनि प्रमाणित गर्दैन। सुरुङ चालु हुँदा र बन्द गरेपछि फेरि जाँच्नुहोस्, किनभने असफलता-ब्लक सुरुङ गएपछि मात्र देखिन्छ।
कन्टेनरबाहिर पुनःप्राप्ति प्रतिलिपि राख्नुहोस्
कन्टेनरबाट स्वतन्त्र रहने पुनःप्राप्ति प्रतिलिपि राख्नुहोस्, र दस्तावेजीकृत प्रक्रियाबाट त्यसलाई पुनःस्थापित गर्ने परीक्षण गर्नुहोस्। VPN प्रोफाइलको नजाँचिएको ब्याकअप एउटा आशा हो, विशेषगरी जब पुनःप्राप्ति मार्गमा कन्टेनर प्रक्रियालाई चाहिने अनुमति समावेश हुन्छ।
यदि VPN भएको कन्टेनर बदलियो भने, त्यसको नेटवर्क स्ट्याक साझा गर्ने अनुप्रयोगहरूलाई runtime को समर्थित जीवनचक्रमा समन्वय गर्नुहोस्।
त्यही समन्वय पुनःसुरु र अवरोधबीचको भिन्नता हो। तैनातीले कन्फिगरेसन कहाँबाट आउँछ वर्णन गर्नुपर्छ, र volume दस्तावेजीकरण runtime ले वास्तवमा के सुरक्षित राख्छ जाँच्ने ठाउँ हो।