アップグレード後、dockerが外部と通信できなくなりました

最近、DigitalOcean 上の Ubuntu 20 で気づいた点として、ホストマシンが Docker にドメインネームサーバーを公開していないという問題があります。これはファイアウォールの問題ではありません。Ubuntu 20 ではデフォルトでファイアウォールが有効になっていないためです。

修正するには、まず cat /run/systemd/resolve/resolv.conf で DigitalOcean のネームサーバーを確認してください。以下のような表示が得られます。

nameserver 1.2.3.4
nameserver 9.8.7.6

次に、nano /etc/docker/daemon.json で daemon.json ファイルを編集し、上記のネームサーバーと、オプションとして Google DNS (8.8.8.8) を Docker で利用できるように設定します。

{
    "dns": ["<上記の ip1>", "<上記の ip2>", "8.8.8.8"]
}

その後、Docker を再起動してビルドし直してください。

systemctl restart docker
/var/discourse/launcher rebuild app
「いいね!」 3