Docker network hiba frissítéskor

Fórumok

Hali!

 

Megjelent a Docker CE 24-es verziója néhány napja, ami frissítéskor, bekapcsolt live-restore mellett összekuszálta a hálózatot. A konténerek egy network-ben DNS-sel, a konténernév alapján találták meg egymást, a frissítés után ez megszűnt.

 

Gondoltam én, egyszeri probléma, szépen újracsináltam mindent. Majd tegnap kijött a 24.0.1 és pontosan ugyanerre ébredtem. Egy AlmaLinux-os cPanel VPS automatikus frissítésének hála reggelre megint minden elesett Docker-ben. Probléma ugyanez, a megoldás is. Network-ök kitakarítása, újralétrehozása és megy tovább.

 

Több Debian gépen is kijött, de ott nem automatikus a frissítés, szóval késő este lehetett vele mojolni.

 

Más is tapasztalta? Fura, hogy két gépen is kijött, de itt és más fórumokon sem találtam róla említést - ami persze nem jelenti, hogy nem is volt.

Hozzászólások

Ez nem érdemi segítség, de megnéztem, 24.0 volt fent jelenleg (nem tapasztaltam semmi gondot), automatikusan még nem frissült, hát megcsináltam kézzel, szintén semmi probléma, megy minden, a hálózatok sem másztak el. Mezei Ubuntu 22.04.2.

Szia!

Ezt találtam elsőre, ami hasonló lehet a Te problémádhoz (tegnapi issue): https://github.com/bitnami/containers/issues/34531

Aztán lentebb van benne írás, hogy lett egy fix, ami eredményezte a 24.0.1-es Docker release-t (https://github.com/moby/moby/pull/45565)

Ha nem ez a probléma és a fentiek sem szolgálnak magyarázattal/megoldással, akkor bocs!

A gyors gondolat többet ér, mint a gyors mozdulat.

Köszi a linkeket! Szerencsére megoldani sikerült rögvest, inkább magyarázatot keresek. A pull request a második linken DNS-specifikus ugyan, de inkább a külső nevek feloldásáról ír, ahol a Docker DNS forwarderi minőségében működik. Ki kellett volna tesztelnem dig-gel, milyen választ ad a DNS amikor hibázik (azon túl, hogy a host parancs 2 servfail-t dob), de elsőre inkább a network-öket csináltam újra és az meg is oldotta, de így a hibát is eltűntette:D

 

Rt711

Docker Compose-zal csinálom. Így látják egymást a konténerek, mondjuk a nginx, php-fpm és a mysql. A frissítés után annyi történt, hogy a php-fpm a nginx, a mysql a php-fpm konténer számára már nem létezett, mint feloldható név. A php-fpm a nginx-et sem látta, a nginx az sql-t sem és az sql-sem a többieket:D. Ez most egy konkrét példa volt, de volt a képletben node.js + Redis APP is, volt, ahol külön database, külön proxy és külön belső network volt adott APP feladataira, az AlmaLinux gépen pedig egy Icecast szerverre kapcsolódik több rádió, ott is ez volt a probléma.

Annyit találtam még, hogy ha egy network-ben újraindítom azt a konténert, amivel egyidőben létrehozta a Docker Compose, akkor a többiek onnan elérik azt a konténert, de más irányok állnak továbbra is. Tehát van a mysql compose-ja ami létrehozza a mysql network-öt, aztán vannak a webappok amiknek external-ként van megadva.

Ugyancsak érdekes, hogy azok a stack-ek, ahol nginx + php-fpm futott belső hálón és a php-nak volt beadva external-ként a mysql network, ott a frissítés után a nginx és a php-fpm látták egymást, de a php-fpm az sql-t nem.

Zárásként pedig egy nginx + php-fpm + liquidsoap trióból, ahol externalként a liquid csatlakozott az icecast-hoz és a nginx a nginx-proxy-hoz, a php pedig a mysql hálózathoz, ott a liquid nem látta a belső webszervert, de a belső webszerver látta a belső php-t, a belső php nem látta a külső adatbázist, de a külső hálózatos proxy nginx látta a belső webapp nginx-et.

Elég kusza, számomra is érthetetlen, mi okozta ezt az eddig sosem látott randomitást. Mindig bennem volt, hogy egy ilyen kesze-kusza felépítés megborulhat, de évekig nem volt ilyen. Most igen, kétszer egymás után.

Lássuk mit hoz a jövő:D

TheAdam

Hálózatot hogyan manageled? Egygépes megoldásnál docker-compose ezt megoldhatja.

Pontosan ilyen hibát tapasztalok, Docker Engine 20.10 és 24.0.2 esetén is. Egyszercsak megáll bizonyos szolgáltatások között a névfeloldás, rejtélyes, hogy miért. Eléggé kellemetlen dolog ez, mert nem ismert a gyökérok, hogy el lehessen hárítani.