Docker wegert in netwurk te meitsjen mei de melding dat de poel oerlaapet mei in oare yn dizze adresromte, en immen beslút dat de VPN-rûte de oarsaak wêze moat. Dat kin net. Dy flater ûntstiet wylst in poel tawizen wurdt, foardat der ek mar ien pakket bestiet, en in hânmjittige kernelrûte hat gjin ynfloed dêrop. De VPN docht in stap letter ta saak, as in container dy't al in adres hat net mear berikber wurdt neidat in rûte ferskynt. Twa problemen, twa sets bewiis, en se trochinoar smite jout in feroaring dy't gjin fan beide oplost.

Twa flaters dy't opinoar lykje

De tawizingsflater is rekkenkundich. Docker fergelyket it subnet dat jo fregen mei de subnetten dy't it al beheart, fynt in oerlaap en wegertet. Der rint noch neat, dus der is gjin rûte, gjin container en gjin ferkear om te ûndersykjen.

It symptoom by it draaien is in berikberensfraach. In container dy't juster antwurde antwurdet no net, en der is wat feroare yn 'e rûtingstabel fan 'e host. De container hâldt syn adres; de fraach is hokker paad dat adres nimt.

Beide binne adresplanproblemen. Mar ien fan beide is in Docker-probleem.

Lês earst de tawizene poelen

List de netwurken op en ûndersykje dyjingen dy't oerlaapje kinne. It subnet wennet yn 'e IPAM-konfiguraasje, en de oansletten containers wurde apart neamd:

docker network ls
docker network inspect EXISTING_NETWORK

Fergelykje dat subnet mei de poel dy't it nije netwurk freget, en tink derom dat Compose per projekt syn eigen standertnetwurk makket. In konflikt mei in projekt dat jo ferjitten binne, liket krekt as in konflikt mei de daemon.

In statysk ipv4_address op in tsjinst is it adres fan ien container, net de poeldefinysje. It feroarjen derfan hellet in oerlaap net wei, want de oerlaap is tusken netwerksubnetten en net tusken containers. Docker syn network-create-referinsje easket net-oerlaapjende subnetten foar gewoane brêgetawizing en dokumintearret hoe't jo ien eksplisyt kieze.

Kies in foarheaksel dat de VPN oerlibbet

It direkte konflikt en de takomstige rûte wurde troch deselde kar beslist, dus meitsje dy ien kear. Fergelykje it kandidaatberik mei it LAN, mei elke VPN-bestimming dy't de host berikke kin, en mei elke oare overlay dy't brûkt wurdt.

In foarheaksel dat Docker tefreden stelt en mei it fiere netwurk botst, jout jo in container dy't skjin start en berikberens ferliest op it stuit dat de tunnel omheech giet. Dat is de twadde flater yn dit artikel, en it is folle dreger om letter te diagnostisearjen as om it no te foarkommen.

Skriuw de keazen berikken earne op dêr't it folgjende projekt se lêze kin. In register fan tawizene foarheakseis fan ien rigel is goedkeaper as in wike fan ûnferklearre time-outs.

Nim in netwurk bewust út gebrûk of feroarje it

Foar in nij Compose-netwurk sette jo it ûnbrûkte foarheaksel yn 'e IPAM-konfiguraasje fan it netwurk. Foar in besteand projekt plenje jo de fernûmering: fêste adressen, ôfhinklike tsjinsten en de stap fan it opnij meitsjen fan it netwurk moatte allegear meirekkene wurde, want YAML bewurkje fernûmeret in rinnend netwurk net.

As in ferâldere netwurk de konfliktende tawizing hat, ûndersykje dan wa't oansletten is foardat jo it fuorthelje. docker network rm wegertet wylst aktive einpunten bestean, en docker stop nimt containernammen of ID's yn plak fan in netwurknamme. It stopjen fan in container hellet ek de netwurkdefinysje dy't de poel hâldt net wei.

In brede prune is gjin diagnostysk helpmiddel. It berikt net-relatearre projekten en ferneatiget it bewiis dat jo op it punt stiene te sammeljen.

Standertpoelen helpe allinnich de folgjende tawizing

De ynstelling foar de standertadrespoel fan 'e daemon ferbetteret takomstige automatyske tawizingen troch se bûten de berikken te hâlden dy't jo reservearje. It jouwt besteande netwurken net efterôf nije adressen, en it lost gjin eksplisyt subnet op dat in oar eksplisyt subnet oerlaapet.

Behandelje dy ynstelling as in aparte, plande feroaring mei syn eigen herstart, net as diel fan it reparearjen fan ien projekt. Beide trochinoar smite betsjut dat in daemon-herstart midden yn in net-relatearre ûndersyk falt. Plenje it yn syn eigen finster. Befêstigje dan dat ien nije automatyske tawizing wirklik bûten de berikken falt dy't jo reserven.

As it meitsjen slagget, kontrolearje dan it subnet dat wirklik rint en doch dan ien echte applikaasje-oanfraach mei de VPN yn syn bedoelde tastân. As de poel jildich is en tagong noch altyd mislearret, is it oerbleaune wurk rûtekar, filterjen en de weromwei. Dat is in ûndersyk by it draaien, en it makket de tawizingsflater net efterôf betsjuttingsleas.

Wurkfolchoarder: lês de tawizene poelen, kies in foarheaksel dat sawol Docker as de VPN-bestimmingen mijt, meitsje it netwurk bewust opnij, en test dan ien oanfraach mei de tunnel omheech.

Relatearre artikelen