Docker ਦਾ ਡਿਫ਼ਾਲਟ ਪੂਲ ਬਦਲਣ ਨਾਲ ਨੈੱਟਵਰਕ ਮੁੜ ਕ੍ਰਮਬੱਧ ਨਹੀਂ ਹੁੰਦੇ
default-address-pools ਬਦਲਣ ਨਾਲ ਸਿਰਫ਼ ਨਵੇਂ ਆਟੋਮੈਟਿਕ ਨੈੱਟਵਰਕ ਨਿਯੰਤਰਿਤ ਹੁੰਦੇ ਹਨ। ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਵਰਤ ਰਹੀਆਂ ਰੇਂਜਾਂ ਦੀ ਸੂਚੀ ਬਣਾਓ, ਫਿਰ ਚੱਲ ਰਹੇ ਦਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਯੋਜਨਾ ਬਣਾਓ।
default-address-pools ਬਦਲਣ ਨਾਲ ਤੁਹਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਨੈੱਟਵਰਕ ਮੁੜ ਕ੍ਰਮਬੱਧ ਨਹੀਂ ਹੁੰਦੇ, ਅਤੇ ਇਸ ਦੀ ਉਮੀਦ ਕਰਨਾ ਹੀ ਉਹ ਤਰੀਕਾ ਹੈ ਜਿਸ ਨਾਲ ਸਾਵਧਾਨ ਯੋਜਨਾ ਅਚਾਨਕ ਰੁਕਾਵਟ ਬਣ ਜਾਂਦੀ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਡੈਮਨ ਦੇ ਨਵੀਂ ਕਨਫਿਗਰੇਸ਼ਨ ਨਾਲ ਮੁੜ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਬਣਨ ਵਾਲੇ ਨੈੱਟਵਰਕ ਲਈ ਆਟੋਮੈਟਿਕ ਵੰਡ ਨਿਯੰਤਰਿਤ ਕਰਦੀ ਹੈ। ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਹੀ ਹਰ ਚੀਜ਼ ਆਪਣੇ ਦਿੱਤੇ ਸਬਨੈੱਟ ਨੂੰ ਬਣਾਈ ਰੱਖਦੀ ਹੈ, ਕਿਉਂਕਿ ਉਹ ਸਬਨੈੱਟ ਨੈੱਟਵਰਕ ਦੀ ਸੰਭਾਲੀ ਪਰਿਭਾਸ਼ਾ ਦਾ ਹਿੱਸਾ ਹੈ। ਦੰਤਕਥਾ ਸੁਵਿਧਾਜਨਕ ਹੈ ਕਿਉਂਕਿ ਇਹ ਸੁਝਾਅ ਦਿੰਦੀ ਹੈ ਕਿ ਇੱਕੋ ਸੋਧ ਹਰ ਓਵਰਲੈਪ ਠੀਕ ਕਰ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਅਸਲੀਅਤ ਦੋ ਹਿੱਸਿਆਂ ਦਾ ਕੰਮ ਹੈ: ਸੱਚਮੁੱਚ ਖਾਲੀ ਰੇਂਜ ਚੁਣੋ, ਫਿਰ ਖਾਲੀ ਨਾ ਹੋਣ ਵਾਲੇ ਨੈੱਟਵਰਕ ਮਾਈਗ੍ਰੇਟ ਕਰੋ।
ਦੰਤਕਥਾ: ਪੂਲ ਦਾ ਇੱਕ ਬਦਲਾਅ ਓਵਰਲੈਪ ਠੀਕ ਕਰਦਾ ਹੈ
ਦੰਤਕਥਾ ਦਾ ਇੱਕ ਖਾਸ ਰੂਪ ਹੈ। ਕੋਈ ਪੜ੍ਹਦਾ ਹੈ ਕਿ Docker ਦਾ ਡਿਫ਼ਾਲਟ ਪੂਲ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਉਹ ਇਸਨੂੰ ਬਦਲਦਾ ਹੈ, ਡੈਮਨ ਮੁੜ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਅਤੇ ਸਿੱਟਾ ਕੱਢਦਾ ਹੈ ਕਿ ਕੰਟੇਨਰ ਨੈੱਟਵਰਕ ਹੁਣ ਦਫ਼ਤਰ ਦੇ VPN ਨਾਲ ਨਹੀਂ ਟਕਰਾਉਂਦਾ। ਪੁਰਾਣਾ ਨੈੱਟਵਰਕ ਅਜੇ ਵੀ ਉੱਥੇ ਹੈ, ਅਜੇ ਵੀ ਜੁੜਿਆ ਹੋਇਆ ਹੈ, ਅਤੇ ਟਕਰਾਉਣ ਵਾਲਾ ਪਤਾ ਅਜੇ ਵੀ ਰੱਖਦਾ ਹੈ।
ਬਦਲਿਆ ਹੋਇਆ ਚੀਜ਼ ਵੰਡਕਰਤਾ ਦਾ ਭਵਿੱਖੀ ਵਿਵਹਾਰ ਹੈ, ਜੋ ਸੱਚਮੁੱਚ ਲਾਹੇਵੰਦ ਅਤੇ ਸੱਚਮੁੱਚ ਸੀਮਤ ਹੈ। ਸਪੱਸ਼ਟ --subnet ਤੋਂ ਬਿਨਾਂ ਬਣੇ ਨਵੇਂ ਨੈੱਟਵਰਕ ਨਵੇਂ ਪੂਲ ਵਿੱਚੋਂ ਕੱਟੇ ਜਾਂਦੇ ਹਨ; ਮੌਜੂਦਾ ਉਸ ਪੂਲ ਵਿੱਚ ਕਦੇ ਨਹੀਂ ਸਨ। ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਨੈੱਟਵਰਕ ਮੁੜ ਨਹੀਂ ਬਣਾਉਂਦਾ ਅਤੇ ਕੰਟੇਨਰ ਉਨ੍ਹਾਂ ਵਿਚਕਾਰ ਨਹੀਂ ਭੇਜਦਾ। ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਵੀ ਲੱਛਣ ਰਹੇ ਤਾਂ ਬਦਲਾਅ ਅਸਲੀ ਸੀ ਅਤੇ ਨਿਦਾਨ ਅਧੂਰਾ ਸੀ।
ਆਧਾਰ ਰੇਂਜ ਅਤੇ ਵੰਡਿਆ ਪ੍ਰੀਫਿਕਸ
ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਦੋ ਫ਼ੀਲਡ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਲਝਾਉਣਾ ਸੌਖਾ ਹੈ। base ਉਹ ਰੇਂਜ ਹੈ ਜਿਸ ਵਿੱਚੋਂ ਵੰਡਕਰਤਾ ਕੱਟਦਾ ਹੈ, ਅਤੇ size ਹਰ ਵੰਡੇ ਨੈੱਟਵਰਕ ਦੀ ਪ੍ਰੀਫਿਕਸ ਲੰਬਾਈ ਹੈ, ਇਸ ਲਈ 10.10.0.0/16 ਆਧਾਰ ਅਤੇ 24 ਆਕਾਰ ਉਸ /16 ਦੇ ਅੰਦਰ /24 ਵੰਡਦਾ ਹੈ। ਭੂਮਿਕਾਵਾਂ ਉਲਟਣ ਨਾਲ ਉਹ ਵੰਡ ਪੈਟਰਨ ਬਣਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਨਹੀਂ ਚਾਹੁੰਦੇ ਸੀ, ਆਮ ਤੌਰ ’ਤੇ ਇੱਕ ਵਿਸ਼ਾਲ ਨੈੱਟਵਰਕ ਜਾਂ ਖ਼ਤਮ ਹੋਇਆ ਪੂਲ।
ਪੂਲ ਇੱਕ ਰਾਖਵਾਂਕਰਨ ਹੈ, ਸਬੂਤ ਨਹੀਂ। Docker ਹੋਸਟ ਦੀ ਰੂਟਿੰਗ ਟੇਬਲ ਵਿੱਚ ਦਿਸਣ ਵਾਲੇ ਟਕਰਾਅ ਤੋਂ ਬਚਦਾ ਹੈ, ਅਤੇ ਜਿਸ VPN ਨਾਲ ਤੁਸੀਂ ਅਜੇ ਜੁੜੇ ਨਹੀਂ ਉਸਨੂੰ ਦੇਖ ਨਹੀਂ ਸਕਦਾ।
ਇਹ ਸੀਮਾ ਹੀ ਸੁਚੇਤ ਚੋਣ ਦਾ ਪੂਰਾ ਕਾਰਨ ਹੈ। ਤੁਲਨਾ ਕਰਨ ਵਾਲੀਆਂ ਰੇਂਜਾਂ ਉਹ ਹਨ ਜਿੱਥੇ ਹੋਸਟ ਨੂੰ ਪਹੁੰਚਣਾ ਹੈ: ਦਫ਼ਤਰ ਦਾ LAN, ਕਾਰਪੋਰੇਟ VPN ਦੇ ਅੰਦਰੂਨੀ ਸਬਨੈੱਟ, ਲੈਬ ਜਾਂ ਸਟੇਜਿੰਗ ਦੇ ਪ੍ਰੀਫਿਕਸ, ਅਤੇ ਉਸੇ ਓਵਰਲੇਅ ’ਤੇ ਕੋਈ ਹੋਰ ਕੰਟੇਨਰ ਹੋਸਟ। ਡੈਮਨ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਉਨ੍ਹਾਂ ਨੂੰ CIDR ਵਜੋਂ ਲਿਖੋ, ਕਿਉਂਕਿ ਦਿਮਾਗ਼ ਵਿੱਚਲੀ ਸੂਚੀ ਠੀਕ ਉਹੀ ਇੱਕ ਛੱਡ ਦੇਵੇਗੀ ਜੋ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਫਿਰ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਨਾਲ ਓਵਰਲੈਪ ਨਾ ਹੋਣ ਵਾਲਾ ਆਧਾਰ ਚੁਣੋ, ਅਤੇ ਸੂਚੀ ਤੈਨਾਤੀ ਨਾਲ ਰੱਖੋ ਤਾਂ ਜੋ ਅਗਲਾ ਵਿਅਕਤੀ ਇਹ ਅਭਿਆਸ ਯਾਦ ਤੋਂ ਦੁਹਰਾਏ ਨਾ।
ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਸੂਚੀ ਬਣਾਓ
ਪਹਿਲਾਂ ਜੋ ਹੈ ਉਸ ਦੀ ਸੂਚੀ ਬਣਾਓ। docker network ls ਨੈੱਟਵਰਕ ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ, ਅਤੇ docker network inspect bridge -f '{{.IPAM.Config}}' ਕਿਸੇ ਖਾਸ ਨੈੱਟਵਰਕ ਵੱਲੋਂ ਵਰਤਿਆ ਸਬਨੈੱਟ ਛਾਪਦਾ ਹੈ। ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਪਰਿਭਾਸ਼ਿਤ ਹਰ ਨੈੱਟਵਰਕ ਲਈ ਇਹ ਦੁਹਰਾਓ, ਕਿਉਂਕਿ Compose ਪ੍ਰੋਜੈਕਟ ਆਪਣੇ ਬਣਾਉਂਦੇ ਹਨ ਅਤੇ compose ਫ਼ਾਈਲ ਵਿੱਚ ਸਪੱਸ਼ਟ --subnet ਪੂਲ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਾਈਪਾਸ ਕਰਦਾ ਹੈ।
ਉਹੀ ਆਖ਼ਰੀ ਨੁਕਤਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਤੋਂ ਬਾਅਦ ਵੀ ਟਿਕਦਾ ਹੈ। ਪੂਲ ਬਦਲਣਾ ਕਿਸੇ ਸਹਿਕਰਮੀ ਨੂੰ compose ਫ਼ਾਈਲ ਵਿੱਚ 172.18.0.0/16 ਪਿੰਨ ਕਰਨ ਤੋਂ ਨਹੀਂ ਰੋਕਦਾ, ਅਤੇ ਟਕਰਾਅ ਕਿਸੇ ਹੋਰ ਲੇਖਕ ਨਾਲ ਵਾਪਸ ਆਉਂਦਾ ਹੈ।
ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਦਾ ਮਾਈਗ੍ਰੇਸ਼ਨ
ਮੌਜੂਦਾ ਨੈੱਟਵਰਕ ਦਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਇੱਕ ਵੱਖਰੀ, ਸਮਰਥਿਤ ਕਾਰਵਾਈ ਹੈ। ਪ੍ਰਭਾਵਿਤ ਹਰ ਨੈੱਟਵਰਕ ਨੂੰ ਨਵੇਂ ਸਬਨੈੱਟ ਨਾਲ ਮੁੜ ਬਣਾਉਣਾ ਪੈਂਦਾ ਹੈ, ਜਿਸ ਦਾ ਅਰਥ ਹੈ ਇਸਨੂੰ ਵਰਤਣ ਵਾਲੇ ਕੰਟੇਨਰ ਵੱਖ ਕਰਕੇ ਮੁੜ ਜੋੜਨਾ, ਅਤੇ ਨੈੱਟਵਰਕ ਮੁੜ ਬਣਾਉਣ ਨਾਲ ਇਸ ਦੇ ਕੰਟੇਨਰ ਜੋੜ ਭੇਜਣ ਦੀ ਬਜਾਏ ਹਟਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। ਵਾਲੀਅਮ ਅਤੇ ਕਨਫਿਗਰੇਸ਼ਨ ਸੰਭਾਲੋ ਅਤੇ ਮੁੜ ਬਣਾਉਣ ਨੂੰ ਡੇਟਾ ਰੀਸੈਟ ਨਹੀਂ ਸਗੋਂ ਤੈਨਾਤੀ ਮੰਨੋ। ਕੰਮ ਸੰਭਾਲ ਵਿੰਡੋ ਵਿੱਚ ਕਰੋ, ਕਿਉਂਕਿ ਮੁੜ ਬਣੇ ਨੈੱਟਵਰਕ ਦੇ ਕੰਟੇਨਰ ਤੁਸੀਂ ਯੋਜਨਾ ਬਣਾਈ ਹੋਵੇ ਜਾਂ ਨਾ, ਮੁੜ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ।
ਦਸਤਾਵੇਜ਼ੀ ਡੈਮਨ ਕਨਫਿਗਰੇਸ਼ਨ ਅਤੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਦੀ ਪਾਲਣਾ ਕਰੋ, ਅਤੇ ਰੁਕਾਵਟ ਦਾ ਤਾਲਮੇਲ ਕਰੋ। ਇੱਕ ਡੈਮਨ ਵਾਲੇ ਹੋਸਟ ’ਤੇ, systemctl restart docker ਕੰਟੇਨਰਾਂ ਨੂੰ ਉਨ੍ਹਾਂ ਦੀਆਂ ਮੁੜ ਸ਼ੁਰੂ ਨੀਤੀਆਂ ਅਨੁਸਾਰ ਮੁੜ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ ਬਾਅਦ ਨਹੀਂ ਸਗੋਂ ਪਹਿਲਾਂ ਜਾਣਨ ਯੋਗ ਵਿਵਹਾਰ ਹੈ।
ਫਿਰ ਬਦਲਾਅ ਨੇ ਜੋ ਦੋ ਚੀਜ਼ਾਂ ਠੀਕ ਕਰਨੀਆਂ ਸਨ ਉਨ੍ਹਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। docker network inspect ਨਾਲ ਨਵਾਂ ਸਬਨੈੱਟ ਜਾਂਚੋ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਚੁਣੇ ਆਧਾਰ ਦੇ ਅੰਦਰ ਹੈ, ਫਿਰ ip route get 10.20.30.40 ਨਾਲ ਇੱਕ ਪ੍ਰਤੀਨਿਧ VPN ਮੰਜ਼ਿਲ ਦਾ ਰਸਤਾ ਜਾਂਚੋ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਤੁਹਾਡੀ ਉਮੀਦ ਵਾਲੀ ਥਾਂ ਜਾਂਦਾ ਹੈ, ਪੁਲ ਵਿੱਚ ਨਹੀਂ। ਸੇਵਾ ਖੋਜ ਅਤੇ ਕੰਟੇਨਰ-ਤੋਂ-ਕੰਟੇਨਰ ਸੰਚਾਰ ਵੀ ਪਰਖੋ, ਕਿਉਂਕਿ ਵੱਖਰੇ ਪਤਿਆਂ ਨਾਲ ਮੁੜ ਬਣਿਆ ਨੈੱਟਵਰਕ ਨਾਮ ਨਿਪਟਾਰੇ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਤੋੜ ਸਕਦਾ ਹੈ ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਬੱਗ ਵਾਂਗ ਦਿਸਦਾ ਹੈ।
ਬਾਅਦ ਵਿੱਚ ਵੀ ਕੀ ਟੁੱਟਦਾ ਹੈ
ਟਿਕਾਊ ਹਿੱਸਾ ਰਿਕਾਰਡ ਹੈ। ਵੰਡ ਸੂਚੀ, ਚੁਣਿਆ ਆਧਾਰ ਅਤੇ ਆਕਾਰ, ਅਤੇ ਮੁੜ ਬਣੇ ਨੈੱਟਵਰਕ ਤੈਨਾਤੀ ਵਾਲੀ ਥਾਂ ’ਤੇ ਹੀ ਰੱਖੋ।
ਰੇਂਜ ਦਾ ਨਿੱਜੀ ਹੋਣਾ ਇਸਨੂੰ ਮੁੜ ਵਰਤੋਂ ਲਈ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਬਣਾਉਂਦਾ। 10.0.0.0/8 ਨਿੱਜੀ ਹੈ ਅਤੇ ਨਾਲ ਹੀ ਰਸਤੇ ਵਿੱਚ ਕਿਤੇ ਪਹਿਲਾਂ ਹੀ ਵਰਤੋਂ ਵਿੱਚ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਸਭ ਤੋਂ ਵੱਧ ਹੈ, ਇਸ ਲਈ ਜਵਾਬ ਇੱਕ ਬਲਾਕ ਵੱਲ ਝੁਕਾਅ ਨਹੀਂ ਸਗੋਂ ਖਾਸ ਰਾਖਵਾਂਕਰਨ ਹੈ। Docker ਨੈੱਟਵਰਕ ਦਸਤਾਵੇਜ਼ ਆਟੋਮੈਟਿਕ ਸਬਨੈੱਟ ਵੰਡ ਅਤੇ ਪੂਲ ਦੇ ਫ਼ੀਲਡਾਂ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। ਰੇਂਜ ਇਸ ਆਧਾਰ ’ਤੇ ਚੁਣੋ ਕਿ ਤੁਹਾਨੂੰ ਕਿੱਥੇ ਪਹੁੰਚਣਾ ਹੈ, ਇਸ ਆਧਾਰ ’ਤੇ ਨਹੀਂ ਕਿ ਇਹ ਸਾਫ਼-ਸੁਥਰੀ ਦਿਸਦੀ ਹੈ।