Dopo l'aggiornamento, Docker non può comunicare con il mondo esterno

Questa mattina mi sono svegliato con la notizia che il mio server Discourse era “in down”.

Sono riuscito a fare ssh sul server senza problemi, ho notato che erano necessari alcuni aggiornamenti di sicurezza, li ho applicati con apt full-upgrade e ho riavviato il server con reboot.

Ci è voluto un po’ di tempo per ripartire, ma quando è successo ho verificato che il container Docker di Discourse fosse in esecuzione. Stranamente, nessun problema.

Ho provato a fermare e riavviare con ./launcher app stop e ./launcher app start. Non ha aiutato.

Ho provato a eseguire ./launcher app rebuild e ho ottenuto il seguente errore.

fatal: unable to access 'https://github.com/discourse/pups.git/': Could not resolve host: github.com
d1412324832190f43a2d51b5f10c53d6fa671056f91d0be2178d17a5ba1ab692

So che non è esattamente molto su cui basarsi, ma sono bloccato. Qualsiasi suggerimento sarebbe molto apprezzato.

Grazie

1 Mi Piace

Ciò suggerisce un errore di rete. Forse Docker non riesce ad accedere a Internet?

Hai qualche idea su come verificarlo?

Prova:

docker run --rm -i debian ping -c 1 github.com

Dovresti ottenere, ad esempio:

○ → docker run --rm -i debian ping -c 1 github.com
PING github.com (140.82.113.3) 56(84) bytes of data.
64 bytes from lb-140-82-113-3-iad.github.com (140.82.113.3): icmp_seq=1 ttl=49 time=44.8 ms

--- statistiche ping di github.com ---
1 pacchetto trasmesso, 1 ricevuto, 0% di perdita di pacchetti, tempo 0ms
rtt min/avg/max/mdev = 44.797/44.797/44.797/0.000 ms
3 Mi Piace

Sì… restituisce
ping: github.com: Errore temporaneo nella risoluzione del nome

Non sono sicuro di cosa sia cambiato. Non ho idea di come risolvere il problema.

Funziona anche dall’esterno di Docker?

1 Mi Piace

Posso raggiungere GitHub dall’esterno di Docker.

ping github.com
PING github.com (192.30.255.113) 56(84) byte di dati.
64 byte da lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=1 ttl=52 tempo=23.3 ms
64 byte da lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=2 ttl=52 tempo=23.3 ms

Prova a:

  • riavviare Docker
  • eseguire docker run --rm -i debian cat /etc/resolv.conf per vedere cosa c’è
2 Mi Piace

Sembra Google

# File dinamico resolv.conf(5) per il resolver glibc(3) generato da resolvconf(8)
#     NON MODIFICARE QUESTO FILE A MANO -- LE TUE MODIFICHE VERRANNO SOVRASCRITTE
# 127.0.0.53 è il resolver stub di systemd-resolved.
# esegui "systemd-resolve --status" per vedere i dettagli sui nameserver effettivi.

nameserver 8.8.8.8
nameserver 8.8.4.4

@supermathie Non sono sicuro se questo abbia a che fare con la questione, ma in ./launcher logs app vedo

[Tue 01 Dec 2020 07:07:13 PM UTC] Si prega di consultare https://curl.haxx.se/libcurl/c/libcurl-errors.html per il codice di errore: 6
[Tue 01 Dec 2020 07:07:13 PM UTC] Impossibile inizializzare l'API.
[Tue 01 Dec 2020 07:07:13 PM UTC] I domini non sono stati modificati.
[Tue 01 Dec 2020 07:07:13 PM UTC] Salta, prossimo tempo di rinnovo: Sat Dec 26 00:31:17 UTC 2020
[Tue 01 Dec 2020 07:07:13 PM UTC] Aggiungi '--force' per forzare il rinnovo.
[Tue 01 Dec 2020 07:07:13 PM UTC] Installazione della chiave in:/shared/ssl/community.acescentral.com.key
[Tue 01 Dec 2020 07:07:13 PM UTC] Installazione della catena completa in:/shared/ssl/community.acescentral.com.cer
[Tue 01 Dec 2020 07:07:13 PM UTC] Esecuzione del comando di ricarica: sv reload nginx
fail: nginx: runsv non in esecuzione
[Tue 01 Dec 2020 07:07:13 PM UTC] Errore di ricarica per :
[Tue 01 Dec 2020 07:07:33 PM UTC] Si prega di consultare https://curl.haxx.se/libcurl/c/libcurl-errors.html per il codice di errore: 6
[Tue 01 Dec 2020 07:07:34 PM UTC] Impossibile inizializzare l'API.
[Tue 01 Dec 2020 07:07:34 PM UTC] I domini non sono stati modificati.
[Tue 01 Dec 2020 07:07:34 PM UTC] Salta, prossimo tempo di rinnovo: Sat Dec 26 00:31:20 UTC 2020
[Tue 01 Dec 2020 07:07:34 PM UTC] Aggiungi '--force' per forzare il rinnovo.
[Tue 01 Dec 2020 07:07:34 PM UTC] Installazione della chiave in:/shared/ssl/community.acescentral.com_ecc.key
[Tue 01 Dec 2020 07:07:34 PM UTC] Installazione della catena completa in:/shared/ssl/community.acescentral.com_ecc.cer
[Tue 01 Dec 2020 07:07:34 PM UTC] Esecuzione del comando di ricarica: sv reload nginx
fail: nginx: runsv non in esecuzione
[Tue 01 Dec 2020 07:07:34 PM UTC] Errore di ricarica per :
Avviato runsvdir, PID è 458
chgrp: gruppo non valido: 'syslog'
ok: run: redis: (pid 473) 0s
ok: run: postgres: (pid 470) 0s
rsyslogd: imklog: impossibile aprire il log del kernel (/proc/kmsg): Operazione non consentita.
rsyslogd: attivazione del modulo imklog fallita [v8.1901.0 prova https://www.rsyslog.com/e/2145 ]
pid di supervisor: 471 pid di unicorn: 497

Qual è la tua versione di Docker e come l’hai installata? E quale versione di Ubuntu stai usando?

Client:
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.13.8
 Git commit:        afacb8b7f0
 Built:             Wed Oct 14 19:43:43 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.8
  Git commit:       afacb8b7f0
  Built:            Wed Oct 14 16:41:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.3-0ubuntu2.1
  GitCommit:
 runc:
  Version:          spec: 1.0.1-dev
  GitCommit:
 docker-init:
  Version:          0.18.0
  GitCommit:

Onestamente non me lo ricordo… è qui da sempre. Oggi ho aggiornato Ubuntu come descritto sopra

Ubuntu 20.04.1 LTS

Dopo aver riavviato Docker, funziona il comando ping?

No, stesso errore.

ping: github.com: Temporaneo fallimento nella risoluzione del nome

Un altro punto casuale…

Il mio server Discourse si trova su community.mydomain.com.
Ho un server WordPress su mydomain.com.
Ieri ho configurato un server Rocket.Chat su chat.mydomain.com.

Ho registrato chat.mydomain.com con Let’s Encrypt.
I server WordPress e Rocket.Chat funzionano correttamente.

Non sono sicuro che questo abbia a che fare con il problema, ma volevo solo assicurarmi di non trascurare nulla.

Potrei provare a eliminare e reinstallare Docker; è difficile indovinare esattamente cosa stia succedendo qui e perché Docker si sia rotto.

Prima di fare qualsiasi cosa, assicurati di avere un backup dei tuoi dati (o un backup di Discourse, o almeno di PostgreSQL e degli upload). Se puoi, crea un’immagine della VM.

1 Mi Piace

Ho rimosso completamente Docker e l’ho reinstallato.

Il problema persiste.

È frustrante.

Il tuo server può raggiungere Google DNS, ovvero ping 8.8.8.8?

Nessun problema dal server

ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=2.72 ms

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.720/2.720/2.720/0.000 ms

Nessun esito da Docker

docker run --rm -i debian ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

Onestamente, credo che l’approccio migliore in questo momento sia reinstallare il sistema e copiare i tuoi dati.

Hai un sistema danneggiato per Motivi Misteriosi e il processo di installazione è piuttosto veloce. Probabilmente è il modo migliore per impiegare il tuo tempo.

4 Mi Piace