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

Une chose que j’ai remarquée récemment sur Ubuntu 20 chez DigitalOcean, c’est que la machine hôte ne rend pas ses serveurs de noms de domaine disponibles pour Docker. Ce n’est pas un problème lié au pare-feu, car Ubuntu 20 ne l’active pas par défaut.

Pour corriger cela, trouvez d’abord les serveurs de noms de DigitalOcean avec la commande cat /run/systemd/resolve/resolv.conf. Vous devriez voir quelque chose comme ceci…

nameserver 1.2.3.4
nameserver 9.8.7.6

Ensuite, éditez le fichier daemon.json avec nano /etc/docker/daemon.json afin que ces serveurs de noms, et optionnellement les DNS de Google (8.8.8.8), soient disponibles pour Docker.

{
    "dns": ["<ip1 ci-dessus>", "<ip2 ci-dessus>", "8.8.8.8"]
}

Enfin, redémarrez Docker et reconstruisez l’application.

systemctl restart docker
/var/discourse/launcher rebuild app