ನೀವು ಚಾಲನೆಯಲ್ಲಿರುವ ಕಂಟೇನರ್ ಒಳಗೆ WireGuard ಕಾನ್ಫಿಗರೇಶನ್ ಸಂಪಾದಿಸುತ್ತೀರಿ, ಅದು ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಮುಂದಿನ image ನವೀಕರಣ ಅದನ್ನು ಅಳಿಸುತ್ತದೆ. ಏನೂ ತಪ್ಪಾಗಿ ಕಾನ್ಫಿಗರ್ ಆಗಿರಲಿಲ್ಲ. ಫೈಲ್ ಕಂಟೇನರ್ನ ಬರೆಯಬಹುದಾದ ಪದರದಲ್ಲಿ ವಾಸಿಸುತ್ತಿತ್ತು, ಅದು ಆ ಕಂಟೇನರ್ ನಿದರ್ಶನಕ್ಕೆ ಮಾತ್ರ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಮುಖ್ಯ ಹೋಲಿಕೆ ಯಾವ ಸಾಧನ ಬಳಸುವುದು ಎಂಬುದಲ್ಲ, ಬದಲಿಗೆ ನಿಮ್ಮ ನಿಯೋಜನೆ ಯಾವ ಇನ್ಪುಟ್ಗಳನ್ನು ಘೋಷಿಸುತ್ತದೆ ಎಂಬುದು. ನೀವು ಕೈಯಿಂದ ಸಂಪಾದಿಸಿದ ಎಲ್ಲವೂ ನಿಯೋಜನೆಗೆ ತಿಳಿಯದ ಇನ್ಪುಟ್.

ಎರಡು ರೀತಿಯ ಸ್ಥಿತಿ, ಒಂದು ಬಿಸಾಡಬಹುದಾದದ್ದು

ಕಂಟೇನರ್ಗೆ ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾಡಿದ ಬದಲಾವಣೆಗಳಿಗೆ ಬರೆಯಬಹುದಾದ ಪದರವಿದೆ, ಮತ್ತು ಕಂಟೇನರ್ ಬದಲಾಯಿಸಿದಾಗ ಆ ಪದರವನ್ನು ತ್ಯಜಿಸಲಾಗುತ್ತದೆ. ಅದು ಕಾನ್ಫಿಗರೇಶನ್ ಶೇಖರಣೆ ಅಲ್ಲ ಮತ್ತು ಬ್ಯಾಕಪ್ ಅಲ್ಲ. image ಮತ್ತು ಘೋಷಿತ ಇನ್ಪುಟ್ಗಳೇ ಏನು ಚಲಿಸುತ್ತದೆ ಎಂಬುದರ ಪೂರ್ಣ ವ್ಯಾಖ್ಯಾನ.

ನಿಮ್ಮ ಯಾವ VPN ಫೈಲ್ಗಳು ಘೋಷಿತ ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಯಾವುವು ಆಕಸ್ಮಿಕ ಎಂದು ಕೇಳಿ:

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

diff ಬರೆಯಬಹುದಾದ ಪದರದಲ್ಲಿ ಏನು ಬದಲಾಯಿತು ಎಂದು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಅದು ಮಾಯವಾಗುವ ವಸ್ತುಗಳ ಗುಂಪೇ. mount ಪಟ್ಟಿ ಏನು ಉಳಿಯುತ್ತದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಎರಡನ್ನೂ ಹೋಲಿಸುವುದು ಏನನ್ನಾದರೂ ಕಳೆದುಕೊಳ್ಳುವ ಮೊದಲು ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುತ್ತದೆ.

bind mount, ಹೆಸರಿಸಿದ volume ಅಥವಾ secret: ಪ್ರತಿಯೊಂದು ಏನನ್ನು ರಕ್ಷಿಸುತ್ತದೆ

ಮೂರೂ VPN ಪ್ರೊಫೈಲ್ ಇಟ್ಟುಕೊಳ್ಳಬಹುದು, ಮತ್ತು ಯಾರು ಅದನ್ನು ಓದಬಹುದು ಹಾಗೂ ಬದಲಾವಣೆಯಲ್ಲಿ ಏನಾಗುತ್ತದೆ ಎಂಬುದರಲ್ಲಿ ಭಿನ್ನ.

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

bind mount ಹೋಸ್ಟ್ ಮಾರ್ಗವನ್ನು ನಕ್ಷೆ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಫೈಲ್ ಆ ಮಾರ್ಗ ಎಷ್ಟು ರಕ್ಷಿತವೋ ಅಷ್ಟೇ ರಕ್ಷಿತ ಮತ್ತು ಹೋಸ್ಟ್ನ ಅನುಮತಿಗಳು ಅನುಮತಿಸಿದಷ್ಟು ಗೋಚರ. ಹೆಸರಿಸಿದ volume ಅನ್ನು runtime ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಕಂಟೇನರ್ ತೆಗೆದಾಗಲೂ ಉಳಿಯುತ್ತದೆ, ಇದು ನಿಯೋಜನೆಯ ಒಡೆತನದ ಸ್ಥಿತಿಗೆ ಸುರಕ್ಷಿತ ಡಿಫಾಲ್ಟ್ ಮಾಡುತ್ತದೆ. secret ಕಾರ್ಯವಿಧಾನ image ಅಥವಾ environment variable ನಲ್ಲಿ ನಿಮಗೆ ಬೇಡವಾದ ಸಾಮಗ್ರಿಗೆ.

ಪ್ರತಿ environment variable ಮತ್ತು ಪ್ರತಿ ಹೋಸ್ಟ್ ಫೈಲ್ ಅನ್ನು ಸಮಾನ ರಕ್ಷಣೆ ಎಂದು ಪರಿಗಣಿಸಬೇಡಿ, ಏಕೆಂದರೆ ಅವು ಹಾಗಲ್ಲ.

ಕಂಟೇನರ್ ಒಳಗೆ ಸಂಪಾದನೆಯೇ ಬಲೆ

ಬಲೆ ಸಾಧನವಲ್ಲ, ಸಂಪಾದನೆಯ ದಿಕ್ಕು. ಚಾಲನೆಯಲ್ಲಿರುವ ಕಂಟೇನರ್ ಒಳಗೆ ಮಾಡಿದ ಬದಲಾವಣೆ ನಿಯೋಜನೆಗೆ ಅದೃಶ್ಯ, ಆದ್ದರಿಂದ ಮುಂದಿನ ಮರುಸೃಷ್ಟಿ ಅದನ್ನು ಸದ್ದಿಲ್ಲದೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಲಕ್ಷಣ image ನಲ್ಲಿ ರಿಗ್ರೆಶನ್ ತರಹ ಕಾಣುತ್ತದೆ. ರೋಗನಿರ್ಣಯಕ್ಕಾಗಿ ಅಲ್ಲಿ ಬದಲಾವಣೆ ಮಾಡಬೇಕಿದ್ದರೆ, ತಕ್ಷಣ ಅದನ್ನು ಹೊರಗೆ ನಕಲಿಸಿ ಘೋಷಿತ ಇನ್ಪುಟ್ನಲ್ಲಿ ಇರಿಸಿ. ನಂತರ ನಿಯೋಜನೆ ಅದನ್ನು ಪುನರುತ್ಪಾದಿಸುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಮರುಸೃಷ್ಟಿಸಿ.

ಪ್ರೊಫೈಲ್ ಖಾಸಗಿ ಕೀಗಳು ಮತ್ತು ಖಾತೆ ಸಾಮಗ್ರಿಯನ್ನು ಹೊತ್ತುಕೊಳ್ಳಬಹುದು, ಇದು ಆ ಫೈಲ್ನ ಬ್ಯಾಕಪ್ ಅನ್ನು ಫೈಲ್ ನಕಲಿನ ಬದಲು ರಹಸ್ಯ ನಿರ್ವಹಣೆಯ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಮಾಲೀಕತ್ವ ಮತ್ತು ಓದುವ ಪ್ರವೇಶವನ್ನು ಕಂಟೇನರ್ನ ನಿಜವಾದ ಪ್ರಕ್ರಿಯೆಗೆ ಸೀಮಿತಗೊಳಿಸಿ, ಅನುಮತಿ ದೋಷ ಮಾಯವಾಗಲು ಹೋಸ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅಗಲಗೊಳಿಸುವ ಬದಲು.

ಆ ಅಗಲಗೊಳಿಸುವಿಕೆಯೇ ಕಂಟೇನರ್ನ ಅನುಕೂಲವನ್ನು ಹೋಸ್ಟ್ನ ಒಡ್ಡುವಿಕೆಯಾಗಿ ಮಾಡುತ್ತದೆ.

ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಮರುಸೃಷ್ಟಿಸಿ, ನಂತರ ನಾಲ್ಕು ವಿಷಯಗಳನ್ನು ಪರಿಶೀಲಿಸಿ

image ಆವೃತ್ತಿ, ಅಗತ್ಯ ಸಾಧನ ಮತ್ತು ಸಾಮರ್ಥ್ಯಗಳು, ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕ ಮತ್ತು ನಿರಂತರ ಇನ್ಪುಟ್ಗಳನ್ನು ದಾಖಲಿಸಿ. ಸಾಧನ ಮತ್ತು ಸಾಮರ್ಥ್ಯಗಳ ಪಟ್ಟಿ VPN ಕಂಟೇನರ್ಗೆ ವಿಶೇಷವಾಗಿ ಮುಖ್ಯ, ಏಕೆಂದರೆ ಸುರಂಗಕ್ಕೆ ನೆಟ್ವರ್ಕ್ ಸಾಧನ ಮತ್ತು ಅದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವ ಸವಲತ್ತು ಬೇಕು.

ಯಾವ ಉತ್ಪಾದಿತ ರನ್ಟೈಮ್ ಸ್ಥಿತಿಯನ್ನು ಉಳಿಸುವ ಬದಲು ಮರುನಿರ್ಮಿಸಬೇಕೆಂದು ದೃಢೀಕರಿಸಿ. ಸುರಂಗವು ಮೊದಲ ಆರಂಭದಲ್ಲಿ ಉತ್ಪಾದಿಸಿದ ಕೀಗಳು ಸ್ಥಿತಿ, ಮತ್ತು ಅವನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು ಅಥವಾ ಮರುಉತ್ಪಾದಿಸುವುದು ಹಳೆಯ ಸಾರ್ವಜನಿಕ ಕೀ ಗೊತ್ತಿರುವ ಪ್ರತಿ peer ಗೂ ಪರಿಣಾಮಗಳಿರುವ ನಿರ್ಧಾರ.

ನಿಯಂತ್ರಿತ ಮರುಸೃಷ್ಟಿಯ ನಂತರ ಗುರುತು, ಮಾರ್ಗನಿರ್ದೇಶನ, DNS ಮತ್ತು ಅಗತ್ಯ ವೈಫಲ್ಯ-ಬ್ಲಾಕ್ ಪರಿಶೀಲಿಸಿ. ದೋಷವಿಲ್ಲದೆ ಪ್ರಾರಂಭವಾಗುವ ಪ್ರಕ್ರಿಯೆ ಈ ನಾಲ್ಕರಲ್ಲಿ ಯಾವುದನ್ನೂ ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ. ಸುರಂಗ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಮತ್ತು ಅದನ್ನು ನಿಲ್ಲಿಸಿದ ನಂತರ ಮತ್ತೆ ಪರಿಶೀಲಿಸಿ, ಏಕೆಂದರೆ ವೈಫಲ್ಯ-ಬ್ಲಾಕ್ ಸುರಂಗ ಹೋದಾಗ ಮಾತ್ರ ತೋರಿಸುತ್ತದೆ.

ಕಂಟೇನರ್ನ ಹೊರಗೆ ಮರುಪ್ರಾಪ್ತಿ ನಕಲು ಇರಿಸಿ

ಕಂಟೇನರ್ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಜೀವಿಸುವ ಮರುಪ್ರಾಪ್ತಿ ನಕಲನ್ನು ಇರಿಸಿ, ಮತ್ತು ದಾಖಲಿತ ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಅದನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದನ್ನು ಪರೀಕ್ಷಿಸಿ. VPN ಪ್ರೊಫೈಲ್ನ ಪರೀಕ್ಷಿಸದ ಬ್ಯಾಕಪ್ ಒಂದು ನಿರೀಕ್ಷೆ, ವಿಶೇಷವಾಗಿ ಮರುಪ್ರಾಪ್ತಿ ಮಾರ್ಗದಲ್ಲಿ ಕಂಟೇನರ್ ಪ್ರಕ್ರಿಯೆಗೆ ಬೇಕಾದ ಅನುಮತಿಗಳು ಇದ್ದಾಗ.

VPN ಹೊಂದಿರುವ ಕಂಟೇನರ್ ಬದಲಾದರೆ, ಅದರ ನೆಟ್ವರ್ಕ್ ಸ್ಟಾಕ್ ಹಂಚಿಕೊಳ್ಳುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು runtime ನ ಬೆಂಬಲಿತ ಜೀವನಚಕ್ರದಲ್ಲಿ ಸಮನ್ವಯಗೊಳಿಸಿ.

ಆ ಸಮನ್ವಯವೇ ಮರುಪ್ರಾರಂಭ ಮತ್ತು ಅಡಚಣೆಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸ. ನಿಯೋಜನೆ ಕಾನ್ಫಿಗರೇಶನ್ ಎಲ್ಲಿಂದ ಬರುತ್ತದೆ ಎಂದು ವಿವರಿಸಬೇಕು, ಮತ್ತು volume ದಾಖಲೆಗಳು runtime ನಿಜವಾಗಿ ಏನನ್ನು ಉಳಿಸುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸುವ ಸ್ಥಳ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು