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 ਨੂੰ runtime ਸੰਭਾਲਦਾ ਹੈ ਅਤੇ ਕੰਟੇਨਰ ਹਟਾਉਣ 'ਤੇ ਵੀ ਬਚਦਾ ਹੈ, ਜੋ ਇਸਨੂੰ ਤੈਨਾਤੀ ਦੀ ਮਾਲਕੀ ਵਾਲੀ ਸਥਿਤੀ ਲਈ ਵਧੇਰੇ ਸੁਰੱਖਿਅਤ ਡਿਫਾਲਟ ਬਣਾਉਂਦਾ ਹੈ। secret ਵਿਧੀ ਉਸ ਸਮੱਗਰੀ ਲਈ ਹੈ ਜੋ ਤੁਸੀਂ image ਜਾਂ environment variable ਵਿੱਚ ਨਹੀਂ ਚਾਹੁੰਦੇ।
ਹਰ environment variable ਅਤੇ ਹਰ ਹੋਸਟ ਫਾਈਲ ਨੂੰ ਸਮਾਨ ਸੁਰੱਖਿਆ ਨਾ ਮੰਨੋ, ਕਿਉਂਕਿ ਉਹ ਨਹੀਂ ਹਨ।
ਕੰਟੇਨਰ ਅੰਦਰ ਸੰਪਾਦਨ ਹੀ ਜਾਲ ਹੈ
ਜਾਲ ਸਾਧਨ ਨਹੀਂ, ਸੰਪਾਦਨ ਦੀ ਦਿਸ਼ਾ ਹੈ। ਚੱਲ ਰਹੇ ਕੰਟੇਨਰ ਅੰਦਰ ਕੀਤਾ ਬਦਲਾਅ ਤੈਨਾਤੀ ਲਈ ਅਦਿੱਖ ਹੈ, ਇਸ ਲਈ ਅਗਲੀ ਦੁਬਾਰਾ ਬਣਾਈ ਇਸਨੂੰ ਚੁੱਪਚਾਪ ਵਾਪਸ ਲੈ ਆਉਂਦੀ ਹੈ ਅਤੇ ਲੱਛਣ image ਵਿੱਚ ਰਿਗ੍ਰੈਸ਼ਨ ਵਰਗਾ ਦਿਸਦਾ ਹੈ। ਜੇ ਨਿਦਾਨ ਲਈ ਉੱਥੇ ਬਦਲਾਅ ਕਰਨਾ ਪਵੇ, ਤਾਂ ਤੁਰੰਤ ਬਾਹਰ ਕਾਪੀ ਕਰੋ ਅਤੇ ਘੋਸ਼ਿਤ ਇਨਪੁਟ ਵਿੱਚ ਰੱਖੋ। ਫਿਰ ਦੁਬਾਰਾ ਬਣਾਓ ਤਾਂ ਜੋ ਸਾਬਤ ਹੋਵੇ ਕਿ ਤੈਨਾਤੀ ਇਸਨੂੰ ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਦੀ ਹੈ।
ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਨਿੱਜੀ ਕੁੰਜੀਆਂ ਅਤੇ ਖਾਤਾ ਸਮੱਗਰੀ ਹੋ ਸਕਦੀ ਹੈ, ਜੋ ਉਸ ਫਾਈਲ ਦੇ ਬੈਕਅੱਪ ਨੂੰ ਫਾਈਲ ਕਾਪੀ ਦੀ ਬਜਾਏ ਗੁਪਤ ਸੰਭਾਲ ਦਾ ਕੰਮ ਬਣਾਉਂਦੀ ਹੈ। ਮਾਲਕੀ ਅਤੇ ਪੜ੍ਹਨ ਦੀ ਪਹੁੰਚ ਨੂੰ ਕੰਟੇਨਰ ਦੀ ਅਸਲ ਪ੍ਰਕਿਰਿਆ ਤੱਕ ਸੀਮਿਤ ਰੱਖੋ, ਇਜਾਜ਼ਤ ਦੀ ਗਲਤੀ ਹਟਾਉਣ ਲਈ ਹੋਸਟ ਡਾਇਰੈਕਟਰੀ ਚੌੜੀ ਕਰਨ ਦੀ ਬਜਾਏ।
ਉਹੀ ਚੌੜਾ ਕਰਨਾ ਕੰਟੇਨਰ ਦੀ ਸੁਵਿਧਾ ਨੂੰ ਹੋਸਟ ਦੇ ਖੁਲਾਸੇ ਵਿੱਚ ਬਦਲਦਾ ਹੈ।
ਜਾਣਬੁੱਝ ਕੇ ਦੁਬਾਰਾ ਬਣਾਓ, ਫਿਰ ਚਾਰ ਚੀਜ਼ਾਂ ਜਾਂਚੋ
image ਸੰਸਕਰਣ, ਲੋੜੀਂਦਾ ਡਿਵਾਈਸ ਅਤੇ ਸਮਰੱਥਾਵਾਂ, ਨੈੱਟਵਰਕ ਜੋੜ ਅਤੇ ਸਥਾਈ ਇਨਪੁਟ ਲਿਖੋ। ਡਿਵਾਈਸ ਅਤੇ ਸਮਰੱਥਾ ਸੂਚੀ VPN ਕੰਟੇਨਰ ਲਈ ਖਾਸ ਤੌਰ 'ਤੇ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਕਿਉਂਕਿ ਟਨਲ ਨੂੰ ਨੈੱਟਵਰਕ ਡਿਵਾਈਸ ਅਤੇ ਇਸਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਦਾ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਚਾਹੀਦਾ ਹੈ।
ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਕਿਹੜੀ ਤਿਆਰ ਕੀਤੀ ਰਨਟਾਈਮ ਸਥਿਤੀ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਬਜਾਏ ਦੁਬਾਰਾ ਬਣਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਟਨਲ ਨੇ ਪਹਿਲੀ ਸ਼ੁਰੂਆਤ 'ਤੇ ਜੋ ਕੁੰਜੀਆਂ ਬਣਾਈਆਂ ਉਹ ਸਥਿਤੀ ਹਨ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਰੱਖਣਾ ਜਾਂ ਦੁਬਾਰਾ ਬਣਾਉਣਾ ਉਸ ਹਰ peer ਲਈ ਨਤੀਜਿਆਂ ਵਾਲਾ ਫੈਸਲਾ ਹੈ ਜੋ ਪੁਰਾਣੀ ਜਨਤਕ ਕੁੰਜੀ ਜਾਣਦਾ ਹੈ।
ਨਿਯੰਤਰਿਤ ਦੁਬਾਰਾ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਪਛਾਣ, ਰੂਟਿੰਗ, DNS ਅਤੇ ਲੋੜੀਂਦਾ ਅਸਫਲਤਾ-ਬਲਾਕ ਜਾਂਚੋ। ਬਿਨਾਂ ਗਲਤੀ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਇਹਨਾਂ ਚਾਰਾਂ ਵਿੱਚੋਂ ਇੱਕ ਵੀ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ। ਟਨਲ ਚਾਲੂ ਹੋਣ ਵੇਲੇ ਅਤੇ ਇਸਨੂੰ ਬੰਦ ਕਰਨ ਤੋਂ ਬਾਅਦ ਦੁਬਾਰਾ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਅਸਫਲਤਾ-ਬਲਾਕ ਸਿਰਫ਼ ਤਦ ਹੀ ਦਿਸਦਾ ਹੈ ਜਦੋਂ ਟਨਲ ਚਲਾ ਜਾਂਦਾ ਹੈ।
ਕੰਟੇਨਰ ਤੋਂ ਬਾਹਰ ਰਿਕਵਰੀ ਕਾਪੀ ਰੱਖੋ
ਕੰਟੇਨਰ ਤੋਂ ਸੁਤੰਤਰ ਰਹਿਣ ਵਾਲੀ ਰਿਕਵਰੀ ਕਾਪੀ ਰੱਖੋ, ਅਤੇ ਦਸਤਾਵੇਜ਼ੀ ਪ੍ਰਕਿਰਿਆ ਰਾਹੀਂ ਇਸਨੂੰ ਬਹਾਲ ਕਰਨ ਦੀ ਜਾਂਚ ਕਰੋ। VPN ਪ੍ਰੋਫਾਈਲ ਦਾ ਬਿਨਾਂ ਜਾਂਚਿਆ ਬੈਕਅੱਪ ਇੱਕ ਆਸ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਰਿਕਵਰੀ ਮਾਰਗ ਵਿੱਚ ਉਹ ਇਜਾਜ਼ਤਾਂ ਸ਼ਾਮਲ ਹੋਣ ਜੋ ਕੰਟੇਨਰ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਚਾਹੀਦੀਆਂ ਹਨ।
ਜੇ VPN ਵਾਲਾ ਕੰਟੇਨਰ ਬਦਲਿਆ ਜਾਵੇ, ਤਾਂ ਉਸਦਾ ਨੈੱਟਵਰਕ ਸਟੈਕ ਸਾਂਝਾ ਕਰਨ ਵਾਲੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ runtime ਦੇ ਸਮਰਥਿਤ ਜੀਵਨ ਚੱਕਰ ਵਿੱਚ ਤਾਲਮੇਲ ਕਰੋ।
ਇਹੀ ਤਾਲਮੇਲ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਰੁਕਾਵਟ ਵਿਚਕਾਰ ਫ਼ਰਕ ਹੈ। ਤੈਨਾਤੀ ਨੂੰ ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕੌਂਫਿਗਰੇਸ਼ਨ ਕਿੱਥੋਂ ਆਉਂਦੀ ਹੈ, ਅਤੇ volume ਦਸਤਾਵੇਜ਼ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਜਾਂਚਦੇ ਹੋ ਕਿ runtime ਅਸਲ ਵਿੱਚ ਕੀ ਸੰਭਾਲਦਾ ਹੈ।