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 નેટવર્ક દસ્તાવેજીકરણ સ્વયંસંચાલિત સબનેટ ફાળવણી અને પૂલના ક્ષેત્રો વર્ણવે છે. રેન્જ તમારે પહોંચવું હોય તેના આધારે પસંદ કરો, સુઘડ દેખાય તેના આધારે નહીં.