Docker యొక్క డిఫాల్ట్ పూల్ మార్చడం నెట్వర్క్లను తిరిగి సంఖ్యాపరచదు
default-address-pools మార్చడం కొత్త స్వయంచాలక నెట్వర్క్లను మాత్రమే నియంత్రిస్తుంది. మీరు ఇప్పటికే ఉపయోగిస్తున్న పరిధులను జాబితా చేసి, ఆపై నడుస్తున్న వాటి మార్పిడిని ప్లాన్ చేయండి.
default-address-pools మార్చడం మీ వద్ద ఇప్పటికే ఉన్న నెట్వర్క్లను తిరిగి సంఖ్యాపరచదు, మరియు అలా ఆశించడమే జాగ్రత్తగా రూపొందించిన ప్రణాళికను ఊహించని అంతరాయంగా మార్చే మార్గం. ఈ సెట్టింగ్ డీమన్ కొత్త కాన్ఫిగరేషన్తో తిరిగి ప్రారంభమైన తర్వాత సృష్టించబడే నెట్వర్క్లకు స్వయంచాలక కేటాయింపును నియంత్రిస్తుంది. ఇప్పటికే నడుస్తున్న ప్రతిదీ తనకు ఇచ్చిన సబ్నెట్ను నిలుపుకుంటుంది, ఎందుకంటే ఆ సబ్నెట్ నెట్వర్క్ యొక్క నిల్వ చేసిన నిర్వచనంలో భాగం. ఒకే మార్పు ప్రతి అతివ్యాప్తిని సరిచేస్తుందని సూచించడం వల్ల పురాణం సౌకర్యంగా ఉంటుంది, వాస్తవం రెండు భాగాల పని: నిజంగా ఖాళీగా ఉన్న పరిధిని ఎంచుకోండి, ఆపై ఖాళీగా లేని నెట్వర్క్లను మార్చండి.
పురాణం: ఒక పూల్ మార్పు అతివ్యాప్తిని సరిచేస్తుంది
పురాణానికి నిర్దిష్ట రూపం ఉంది. Docker యొక్క డిఫాల్ట్ పూల్ మార్చవచ్చని ఎవరో చదివి, దాన్ని మార్చి, డీమన్ను తిరిగి ప్రారంభించి, కంటైనర్ నెట్వర్క్ ఇకపై ఆఫీస్ VPN తో ఢీకొట్టదని నిర్ణయించుకుంటారు. పాత నెట్వర్క్ ఇంకా అక్కడే ఉంది, ఇంకా కనెక్ట్ అయి ఉంది, ఢీకొనే చిరునామాను ఇంకా కలిగి ఉంది.
మారినది కేటాయింపుదారు యొక్క భవిష్యత్తు ప్రవర్తన, అది నిజంగా ఉపయోగకరం మరియు నిజంగా పరిమితం. స్పష్టమైన --subnet లేకుండా సృష్టించిన కొత్త నెట్వర్క్లు కొత్త పూల్ నుండి కత్తిరించబడతాయి; ఇప్పటికే ఉన్నవి ఆ పూల్లో ఎప్పుడూ లేవు. తిరిగి ప్రారంభించడం నెట్వర్క్లను తిరిగి నిర్మించదు మరియు కంటైనర్లను వాటి మధ్య కదిలించదు. మార్పు తర్వాత కూడా లక్షణం కొనసాగితే, మార్పు నిజమైనది మరియు నిర్ధారణ అసంపూర్ణం.
ప్రాథమిక పరిధి మరియు కేటాయించిన ప్రిఫిక్స్
కాన్ఫిగరేషన్లో గందరగోళపరచుకోవడం సులభమైన రెండు ఫీల్డ్లు ఉన్నాయి. base అనేది కేటాయింపుదారు కత్తిరించే పరిధి, size అనేది కేటాయించిన ప్రతి నెట్వర్క్ యొక్క ప్రిఫిక్స్ పొడవు, కాబట్టి 10.10.0.0/16 ఆధారం మరియు 24 పరిమాణం ఆ /16 లోపల /24 పంచుతుంది. పాత్రలను తారుమారు చేయడం మీరు ఉద్దేశించని కేటాయింపు నమూనాను సృష్టిస్తుంది, సాధారణంగా ఒక భారీ నెట్వర్క్ లేదా ఖాళీ అయిన పూల్.
పూల్ ఒక రిజర్వేషన్, రుజువు కాదు. Docker హోస్ట్ యొక్క రూటింగ్ పట్టికలో కనిపించే ఘర్షణలను నివారిస్తుంది, మీరు ఇంకా కనెక్ట్ కాని VPN ను అది చూడలేదు.
ఆ పరిమితే ఉద్దేశపూర్వకంగా ఎంచుకోవడానికి మొత్తం కారణం. పోల్చాల్సిన పరిధులు హోస్ట్ చేరుకోవాల్సినవి: ఆఫీస్ LAN, కార్పొరేట్ VPN యొక్క అంతర్గత సబ్నెట్లు, ల్యాబ్ లేదా స్టేజింగ్ ప్రిఫిక్స్లు, మరియు అదే overlay పై ఉన్న ఏదైనా ఇతర కంటైనర్ హోస్ట్. డీమన్ను తాకే ముందు వాటిని 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 నెట్వర్క్ డాక్యుమెంటేషన్ స్వయంచాలక సబ్నెట్ కేటాయింపు మరియు పూల్ ఫీల్డ్లను వివరిస్తుంది. పరిధిని అందంగా కనిపించడం ఆధారంగా కాదు, మీరు చేరుకోవాల్సిన దాని ఆధారంగా ఎంచుకోండి.