Puncte:0

Containerul Docker nu înregistrează numele de gazdă în DNS-ul intern Docker

drapel jp

Folosesc Docker pentru a implementa un serviciu Nextcloud. Pentru aceasta, folosesc imaginea oficială nextcloud-apache, un proxy invers Nginx, certbot și MariaDB. Nimic special, într-adevăr.

Instanța mea docker rulează în modul roi. Toate containerele rulează împreună cu managerul pe aceeași gazdă, cu o singură replică pentru fiecare serviciu, rețele standard de suprapunere. Roiul este pornit folosind un fișier de compunere standard.

Configurația mea a funcționat stabil de multe luni, până aseară, când s-a stricat în mod misterios.Din câte văd, nu au existat actualizări sau reporniri, nici pentru sistemul de operare (Ubuntu Server LTS), Docker-CE sau oricare dintre imagini (fac toate actualizările manual la intervale regulate și cu siguranță nu le-am făcut la 4 dimineața aseară). Am găsit cauza în containerul Nextcloud (dar cred că aceasta este o problemă Docker, de unde întrebarea mea aici...):

Jurnalul pentru proxy-ul invers Nginx arată următoarea linie:

2022/04/06 20:16:45 [eroare] 10#10: *3 nextcloud-app nu a putut fi rezolvată (3: Gazda nu a fost găsită), client: 10.135.40.1, server: <redacted>, cerere: „GET / HTTP/1.1", gazdă: "<redactat>"

Nginx nu poate rezolva serverul de backend și trimite un gateway 502/Bad înapoi clientului.

Am verificat, iar numele de gazdă pentru containerul Nextcloud ("nextcloud-app") nu este într-adevăr înregistrat în DNS-ul intern al docker (disponibil sub 127.0.0.11 în fiecare container). Mă pot autentifica la oricare dintre containere și pot declanșa o solicitare DNS (după rulare după apt-get update && apt-get install iputils-ping dnsutils în interiorul containerelor), numele „nextcloud-app” nu este rezolvat nicăieri. Exemplu:

root@nextcloud-app:/var/www/html# nslookup nextcloud-app
Server: 127.0.0.11
Adresa: 127.0.0.11#53

** serverul nu poate găsi nextcloud-app: NXDOMAIN

Toate celelalte nume de containere se rezolvă așa cum ar trebui. Rezolvarea adreselor externe funcționează, de asemenea. „nextcloud-app” este numai nume de container nerezolvabil.

oricum eu poate sa ping către și de la containerul nextcloud-app utilizând direct adresele IP interne ale docker-ului. Conectivitatea este acolo, doar rezoluția DNS eșuează.

Nu am idee cum să depanez asta mai departe. Nu mi-am atins fișierul compose.yml o săptămână. Din câte știu eu, nimic nu s-a schimbat. Cu toate acestea, configurația a încetat să funcționeze peste noapte.

Cum pot forța containerul Nextcloud să-și înregistreze propriul nume de gazdă la DNS-ul intern al docker-ului? Orice sugestii sunt apreciate.

Puncte:0
drapel jp

Am gasit solutia. Acest răspuns este pentru bietul tip care poate se confruntă cu aceeași problemă în viitor.

Se pare că până la urmă nu a fost o problemă cu docker. Nextcloud a intrat în modul de întreținere în timpul nopții (din motive încă necunoscute, va trebui să investigheze asta în continuare). Cumva imaginea docker Nextcloud nu s-a putut înregistra în DNS-ul lui Docker (din cauza unui bug în imagine?) când se afla în modul de întreținere și situația a devenit blocată: Fără rezoluție DNS, fără accesibilitate la Nextcloud prin proxy invers --> neobservând că Nextcloud este în modul de întreținere --> rămâne în modul de întreținere forerver, fără rezoluție DNS, ...

Dacă m-aș fi gândit să verific dacă Nextcloud a fost în modul de întreținere, m-ar fi putut economisi câteva ore de depanare și zgârieturi. Ieșirea Nextcloud din modul de întreținere a fost/este o chestiune de câteva minute. Mă simt puțin prost acum. ;-)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.