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

今朝、Discourse サーバーが「ダウン」したという報告を目覚めました。

問題なくサーバーに SSH で接続でき、いくつかのセキュリティアップデートを適用する必要があることに気づき、apt full-upgrade で適用し、reboot でサーバーを再起動しました。

再起動には少し時間がかかりましたが、起動後に Discourse の Docker コンテナが実行されているか確認しました。奇妙なことに、問題はありませんでした。

./launcher app stop./launcher app start で停止と再起動を試みましたが、効果はありませんでした。

次に ./launcher app rebuild を実行したところ、以下のエラーが表示されました。

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

これは参考になる情報があまりないことは承知していますが、行き詰まっています。何かご提案があれば大変感謝いたします。

ありがとうございます。

「いいね!」 1

これは何らかのネットワークエラーを示唆しています。もしかすると、Docker が外部世界にアクセスできないのかもしれません。

確認する方法についてご意見はありますか?

試してみてください:

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

以下のような結果が得られるはずです:

○ → docker run --rm -i debian ping -c 1 github.com
PING github.com (140.82.113.3) 56(84) バイトのデータ。
64 バイト from lb-140-82-113-3-iad.github.com (140.82.113.3): icmp_seq=1 ttl=49 time=44.8 ms

--- github.com ping 統計 ---
1 パケット送信、1 受信、0% パケット損失、時間 0ms
rtt 最小/平均/最大/標準偏差 = 44.797/44.797/44.797/0.000 ms
「いいね!」 3

はい…以下が返ってきました。
ping: github.com: Temporary failure in name resolution

何が変わったのか分かりません。この問題をどう解決すればよいのかも見当が付きません。

Docker 外からでも動作しますか?

「いいね!」 1

Docker の外側からは GitHub に到達できます。

ping github.com
PING github.com (192.30.255.113) 56(84) バイトのデータ。
64 バイト from lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=1 ttl=52 time=23.3 ms
64 バイト from lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=2 ttl=52 time=23.3 ms

試してみてください:

  • Docker の再起動
  • docker run --rm -i debian cat /etc/resolv.conf を実行して、内容を確認する
「いいね!」 2

google のようです

# glibc resolver(3) 用の動的 resolv.conf(5) ファイル(resolvconf(8) によって生成)
#     このファイルを手動で編集しないでください。変更は上書きされます。
# 127.0.0.53 は systemd-resolved のスタブリゾルバーです。
# 実際のネームサーバーの詳細を確認するには、「systemd-resolve --status」を実行してください。

nameserver 8.8.8.8
nameserver 8.8.4.4

@supermathie これと関係があるかどうかわかりませんが、./launcher logs app には以下が表示されています。

[Tue 01 Dec 2020 07:07:13 PM UTC] エラーコード 6 については https://curl.haxx.se/libcurl/c/libcurl-errors.html を参照してください
[Tue 01 Dec 2020 07:07:13 PM UTC] API の初期化に失敗しました。
[Tue 01 Dec 2020 07:07:13 PM UTC] ドメインは変更されませんでした。
[Tue 01 Dec 2020 07:07:13 PM UTC] スキップします。次の更新時刻は 2020 年 12 月 26 日 (土) 00:31:17 UTC です
[Tue 01 Dec 2020 07:07:13 PM UTC] 強制的に更新するには '--force' を追加してください。
[Tue 01 Dec 2020 07:07:13 PM UTC] キーを以下にインストール中: /shared/ssl/community.acescentral.com.key
[Tue 01 Dec 2020 07:07:13 PM UTC] フルチェーンを以下にインストール中: /shared/ssl/community.acescentral.com.cer
[Tue 01 Dec 2020 07:07:13 PM UTC] 再読み込みコマンドを実行中: sv reload nginx
fail: nginx: runsv が実行されていません
[Tue 01 Dec 2020 07:07:13 PM UTC] 以下の再読み込みエラー:
[Tue 01 Dec 2020 07:07:33 PM UTC] エラーコード 6 については https://curl.haxx.se/libcurl/c/libcurl-errors.html を参照してください
[Tue 01 Dec 2020 07:07:34 PM UTC] API の初期化に失敗しました。
[Tue 01 Dec 2020 07:07:34 PM UTC] ドメインは変更されませんでした。
[Tue 01 Dec 2020 07:07:34 PM UTC] スキップします。次の更新時刻は 2020 年 12 月 26 日 (土) 00:31:20 UTC です
[Tue 01 Dec 2020 07:07:34 PM UTC] 強制的に更新するには '--force' を追加してください。
[Tue 01 Dec 2020 07:07:34 PM UTC] キーを以下にインストール中: /shared/ssl/community.acescentral.com_ecc.key
[Tue 01 Dec 2020 07:07:34 PM UTC] フルチェーンを以下にインストール中: /shared/ssl/community.acescentral.com_ecc.cer
[Tue 01 Dec 2020 07:07:34 PM UTC] 再読み込みコマンドを実行中: sv reload nginx
fail: nginx: runsv が実行されていません
[Tue 01 Dec 2020 07:07:34 PM UTC] 以下の再読み込みエラー:
runsvdir が開始されました。PID は 458
chgrp: 無効なグループです: 'syslog'
ok: run: redis: (pid 473) 0s
ok: run: postgres: (pid 470) 0s
rsyslogd: imklog: カーネルログ (/proc/kmsg) を開けません: 操作が許可されていません。
rsyslogd: imklog モジュールのアクティベーションに失敗しました [v8.1901.0 詳細: https://www.rsyslog.com/e/2145 ]
supervisor pid: 471 unicorn pid: 497

Docker のバージョンは何ですか?また、どのようにインストールしましたか?さらに、どの Ubuntu を実行していますか?

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:

正直なところ覚えていません…ずっと前からあります。今朝は上記で説明されている通り、Ubuntu を更新しました。

Ubuntu 20.04.1 LTS

Docker を再起動した後、ping コマンドは機能しますか?

いいえ、同じエラーです。

ping: github.com: 名前解決が一時的に失敗しました

もう一つランダムな点ですが…

私の Discourse サーバーは community.mydomain.com にあります。
WordPress サーバーは mydomain.com にあります。
昨日、chat.mydomain.com に Rocket.Chat サーバーをセットアップしました。

chat.mydomain.com を Let’s Encrypt で登録しました。
WordPress と Rocket.Chat のサーバーは正常に動作しています。

これがこの問題に関係するかどうかはわかりませんが、何か見落としていないか確認したかっただけです。

Docker を完全に削除して再インストールしてみるかもしれません。ここで何が起きているのか、なぜ Docker が機能しなくなったのかを正確に推測するのは難しいです。

ただし、何をする前に必ずデータのバックアップを取ってください(Discourse のバックアップ、または少なくとも PostgreSQL とアップロードファイル)。可能であれば、VM のイメージを作成してください。

「いいね!」 1

Docker を完全に削除して再インストールしました。

問題は解決しません。

イライラします。

サーバーから Google DNS への接続は可能ですか?つまり、ping 8.8.8.8 が通りますか?

サーバー側には問題ありません

ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) バイトのデータ。
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=2.72 ms

--- 8.8.8.8 ping 統計 ---
1 パケット送信、1 受信、0% パケットロス、時間 0ms
rtt min/avg/max/mdev = 2.720/2.720/2.720/0.000 ms

Docker からはうまくいきませんでした

docker run --rm -i debian ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) バイトのデータ。

--- 8.8.8.8 ping 統計 ---
1 パケット送信、0 受信、100% パケットロス、時間 0ms

正直なところ、現時点で最善のアプローチは、システムを再インストールしてデータを移行することだと思います。

理由のわからない理由でシステムが破損しているようですが、インストールプロセスは比較的迅速です。おそらく、あなたの時間を最も有効に使う方法でしょう。

「いいね!」 4