Après la mise à niveau, docker ne peut pas communiquer avec le monde extérieur

Je me suis réveillé ce matin avec des rapports indiquant que mon serveur Discourse était « hors ligne ».

J’ai pu me connecter en SSH au serveur sans problème, j’ai constaté que certaines mises à jour de sécurité devaient être appliquées, je les ai appliquées avec apt full-upgrade, puis j’ai redémarré le serveur avec reboot.

Cela a pris un peu de temps pour se relancer, mais une fois fait, j’ai vérifié que le conteneur Docker de Discourse était en cours d’exécution. Étrangement, aucun problème.

J’ai essayé d’arrêter et de redémarrer avec ./launcher app stop et ./launcher app start. Cela n’a pas aidé.

J’ai ensuite essayé de faire un ./launcher app rebuild et j’ai obtenu l’erreur suivante :

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

Je sais que ce n’est pas beaucoup d’informations, mais je suis bloqué. Toute suggestion serait grandement appréciée.

Merci

1 « J'aime »

Cela suggère une erreur de réseau. Peut-être que Docker n’a pas accès au monde extérieur ?

Des idées pour vérifier ?

Essayez :

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

Vous devriez obtenir par exemple :

○ → 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

--- statistiques ping github.com ---
1 paquet transmis, 1 reçu, 0% de perte de paquets, temps 0ms
rtt min/moy/max/mdev = 44.797/44.797/44.797/0.000 ms
3 « J'aime »

Oui… cela renvoie
ping: github.com: Échec temporaire de la résolution du nom

Je ne sais pas ce qui a changé. Je ne sais pas comment résoudre ce problème.

Cela fonctionne-t-il depuis l’extérieur de Docker ?

1 « J'aime »

Je peux accéder à GitHub depuis l’extérieur de Docker.

ping github.com
PING github.com (192.30.255.113) 56(84) octets de données.
64 octets depuis lb-192-30-255-113-sea.github.com (192.30.255.113) : icmp_seq=1 ttl=52 temps=23,3 ms
64 octets depuis lb-192-30-255-113-sea.github.com (192.30.255.113) : icmp_seq=2 ttl=52 temps=23,3 ms

Essayez :

  • de redémarrer Docker
  • docker run --rm -i debian cat /etc/resolv.conf pour voir ce qui s’y trouve
2 « J'aime »

On dirait Google

# Fichier resolv.conf(5) dynamique pour le résolveur glibc(3) généré par resolvconf(8)
#     NE PAS MODIFIER CE FICHIER À LA MAIN -- VOS MODIFICATIONS SERONT ÉCRASÉES
# 127.0.0.53 est le résolveur fictif de systemd-resolved.
# exécutez "systemd-resolve --status" pour voir les détails sur les serveurs de noms réels.

nameserver 8.8.8.8
nameserver 8.8.4.4

@supermathie Je ne sais pas si cela a un lien avec le problème, mais dans ./launcher logs app, je vois :

[Tue 01 Dec 2020 07:07:13 PM UTC] Veuillez consulter https://curl.haxx.se/libcurl/c/libcurl-errors.html pour le code d'erreur : 6
[Tue 01 Dec 2020 07:07:13 PM UTC] Impossible d'initialiser l'API.
[Tue 01 Dec 2020 07:07:13 PM UTC] Les domaines n'ont pas été modifiés.
[Tue 01 Dec 2020 07:07:13 PM UTC] Ignoré, prochaine date de renouvellement : Sat Dec 26 00:31:17 UTC 2020
[Tue 01 Dec 2020 07:07:13 PM UTC] Ajoutez '--force' pour forcer le renouvellement.
[Tue 01 Dec 2020 07:07:13 PM UTC] Installation de la clé vers :/shared/ssl/community.acescentral.com.key
[Tue 01 Dec 2020 07:07:13 PM UTC] Installation de la chaîne complète vers :/shared/ssl/community.acescentral.com.cer
[Tue 01 Dec 2020 07:07:13 PM UTC] Exécution de la commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[Tue 01 Dec 2020 07:07:13 PM UTC] Erreur de rechargement pour :
[Tue 01 Dec 2020 07:07:33 PM UTC] Veuillez consulter https://curl.haxx.se/libcurl/c/libcurl-errors.html pour le code d'erreur : 6
[Tue 01 Dec 2020 07:07:34 PM UTC] Impossible d'initialiser l'API.
[Tue 01 Dec 2020 07:07:34 PM UTC] Les domaines n'ont pas été modifiés.
[Tue 01 Dec 2020 07:07:34 PM UTC] Ignoré, prochaine date de renouvellement : Sat Dec 26 00:31:20 UTC 2020
[Tue 01 Dec 2020 07:07:34 PM UTC] Ajoutez '--force' pour forcer le renouvellement.
[Tue 01 Dec 2020 07:07:34 PM UTC] Installation de la clé vers :/shared/ssl/community.acescentral.com_ecc.key
[Tue 01 Dec 2020 07:07:34 PM UTC] Installation de la chaîne complète vers :/shared/ssl/community.acescentral.com_ecc.cer
[Tue 01 Dec 2020 07:07:34 PM UTC] Exécution de la commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[Tue 01 Dec 2020 07:07:34 PM UTC] Erreur de rechargement pour :
Démarrage de runsvdir, PID est 458
chgrp : groupe invalide : 'syslog'
ok : run : redis : (pid 473) 0s
ok : run : postgres : (pid 470) 0s
rsyslogd : imklog : impossible d'ouvrir le journal du noyau (/proc/kmsg) : Opération non autorisée.
rsyslogd : échec de l'activation du module imklog [v8.1901.0 voir https://www.rsyslog.com/e/2145 ]
supervisor pid : 471 unicorn pid : 497

Quelle est votre version de Docker et comment l’avez-vous installée ? Et quelle version d’Ubuntu exécutez-vous ?

Client :
 Version :           19.03.8
 Version de l'API :       1.40
 Version de Go :        go1.13.8
 Commit Git :        afacb8b7f0
 Construit :             Wed Oct 14 19:43:43 2020
 OS/Arch :           linux/amd64
 Expérimental :      false

Serveur :
 Moteur :
  Version :          19.03.8
  Version de l'API :      1.40 (version minimale 1.12)
  Version de Go :       go1.13.8
  Commit Git :       afacb8b7f0
  Construit :            Wed Oct 14 16:41:21 2020
  OS/Arch :          linux/amd64
  Expérimental :     false
 containerd :
  Version :          1.3.3-0ubuntu2.1
  Commit Git :
 runc :
  Version :          spec: 1.0.1-dev
  Commit Git :
 docker-init :
  Version :          0.18.0
  Commit Git :

Franchement, je ne me souviens plus… cela est là depuis toujours. J’ai mis à jour Ubuntu ce matin comme décrit ci-dessus

Ubuntu 20.04.1 LTS

Après le redémarrage de Docker, la commande ping fonctionne-t-elle ?

Non, même erreur.

ping: github.com: Échec temporaire de résolution de nom

Un autre point aléatoire…

Mon serveur Discourse se trouve à l’adresse community.mydomain.com.
J’ai un serveur WordPress à l’adresse mydomain.com.
Hier, j’ai configuré un serveur Rocket.Chat à l’adresse chat.mydomain.com.

J’ai enregistré chat.mydomain.com auprès de Let’s Encrypt.
Les serveurs WordPress et Rocket.Chat fonctionnent correctement.

Je ne suis pas sûr que cela ait un lien avec ce problème, mais je voulais simplement m’assurer de ne rien négliger.

Je pourrais essayer de purger et de réinstaller Docker ; il est difficile de deviner exactement ce qui se passe ici et pourquoi Docker a planté.

Avant de faire quoi que ce soit, assurez-vous d’avoir une sauvegarde de vos données (soit une sauvegarde de Discourse, ou au moins de postgres et des uploads). Créez une image de la VM si possible.

1 « J'aime »

Docker a été complètement désinstallé puis réinstallé.

Le problème persiste.

C’est frustrant.

Votre serveur peut-il joindre Google DNS, c’est-à-dire exécuter ping 8.8.8.8 ?

Aucun problème côté serveur

ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) octets de données.
64 octets de 8.8.8.8 : icmp_seq=1 ttl=119 time=2.72 ms

--- statistiques de ping 8.8.8.8 ---
1 paquet émis, 1 reçu, 0 % de perte de paquets, temps 0 ms
rtt min/moy/max/mdev = 2.720/2.720/2.720/0.000 ms

Aucune réussite avec Docker

docker run --rm -i debian ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) octets de données.

--- statistiques de ping 8.8.8.8 ---
1 paquet émis, 0 reçu, 100 % de perte de paquets, temps 0 ms

Honnêtement, je pense que la meilleure approche à ce stade est de réinstaller et de copier vos données. Vous avez un système cassé pour des raisons mystérieuses, et le processus d’installation est plutôt rapide. C’est probablement le meilleur emploi de votre temps.

4 « J'aime »