您的 Docker 安装未使用支持的存储驱动。

大家好,我在更新时遇到了一个问题,提示如下:

如果您希望继续使用当前不受支持的存储驱动程序,
请阅读启动器的源代码,并找出如何绕过此检查。
root@sendy:/var/docker/discourse# git pull
已经是最新版本。
root@****:/var/docker/discourse# ./launcher rebuild app
您的 Docker 安装未使用受支持的存储驱动程序。如果我们继续。
推荐使用的存储驱动程序是 overlay2,不过 zfs 和 aufs 也可能正常工作。
其他存储驱动程序已知存在一些问题。
您可以通过运行“docker info”并查看输出结果来了解您正在使用的文件系统。

如果您希望继续使用当前不受支持的存储驱动程序,
请阅读启动器的源代码,并找出如何绕过此检查。
root@****:/var/docker/discourse# docker info
容器:5
镜像:74
存储驱动程序:devicemapper
 池名称:docker-8:0-1970634-pool
 池块大小:65.54 kB
 数据文件:/var/lib/docker/devicemapper/devicemapper/data
 元数据文件:/var/lib/docker/devicemapper/devicemapper/metadata
 已用数据空间:34.15 GB
 总数据空间:107.4 GB
 已用元数据空间:41.37 MB
 总元数据空间:2.147 GB
 库版本:1.02.82-git (2013-10-04)
执行驱动程序:native-0.2
内核版本:5.6.14-x86_64-linode135
操作系统:Debian GNU/Linux

你好 @pauln

如果你的主机仅运行 Docker 以支持 Discourse,且你的 Linux 内核支持 OverlayFS,那么我建议你(谨慎地)重新配置 Docker,使其使用 overlay2 存储驱动。

希望这能帮到你。

2 个赞

您能告诉我如何操作吗?

我运行在 Linode (Debian 7.5) 上。

您能告诉我如何重新配置 Docker 吗?

根据 Docker 官方文档:

要安装 Docker Engine,您需要以下任一 Debian 或 Raspbian 版本的 64 位版本:

  • Debian Buster 10(稳定版)
  • Debian Stretch 9 / Raspbian Stretch

建议使用已更新的 VPS。

2 个赞

@pauln

嘿,我已经启动并清醒了。

你想做什么?

你是想升级到更新版本的 Debian,还是希望我先看看能否让你的 7.5 版本恢复运行?

如果你希望我先尝试让 7.5 版本恢复运行,我需要了解以下信息:

  • Docker 是否还在运行其他服务?

问题是,当你更改 Docker 配置文件中的存储驱动时,所有现有的容器将无法访问。因此,我们需要执行以下步骤:

  • 确保你已拥有完整的 Discourse 备份(始终如此)
  • 关闭 Docker。
  • 编辑 Docker 配置文件以更改存储驱动。
  • 重启 Docker。
  • 重新构建 Discourse。

如果你的 Debian 内核支持 OverlayFS,整个过程将顺利进行。如果不支持,操作会失败,但不会造成任何损害,我们可以回退到 devicemapper。

请告知你希望如何进行。

谢谢。

1 个赞

好的,我想先让它运行在 7.5 版本上。Docker 目前只运行 Discourse。

谢谢,我们开始吧 :slight_smile:

1 个赞

好的……我就是这么想的:slight_smile:

实际上,步骤在此处有详细说明:

快速浏览一下,并告诉我你是否对所述步骤没有问题,或者是否有任何疑问。

谢谢。

1 个赞

好的,让我试试这些步骤,然后回复你?我之前尝试过类似的方法,但没有成功。我会随时向你更新进展。

如果您的 Linux 内核不支持 OverlayFS,操作将会失败。

别担心。

您可以随时回退回去;)

如果操作没有失败,那我就可以回去继续睡觉了:slight_smile:

我该如何测试它是否支持?

Docker 无法重启。

换句话说,Docker 说明中的第 5 步(见上文)将会失败:

5. 启动 Docker。

$ sudo systemctl start docker

这可能会失败,也可能会成功……

(您可能需要使用其他命令代替 systemctl,但概念相同)

1 个赞

好的,正在尝试。我会在这里发布更新。

祝你玩得开心。

我不打算喝咖啡,也不指望奇迹发生,更不指望你的旧版 Linux 内核(出于某种奇怪的原因)真的支持 OverlayFS。

老实说,我快速“谷歌”了一下,结果并不乐观,但我还是尽量保持乐观。

:slight_smile:

2 个赞

没有成功。:frowning: 我该如何将论坛迁移到新的 VPS,同时不丢失任何用户数据?

下载您的 app.yml 和最新的备份文件。

您的 app.yml 通常位于 /var/discourse/containers

备份文件位于 /var/discourse/shared/CONTAINERNAME/backups

如果您的 Discourse 站点无法访问,仍可通过 SFTP 或 SCP 下载这些文件。

@pauln

很遗憾听到这个消息。我原本就怀疑你旧的内核不支持 OverlayFS,但尝试一下并在过程中学习通常也无妨。

在新环境中,你是想继续用 Debian,还是改用 Ubuntu?

我自己用 Ubuntu“已经很久了”,而且它也是 Discourse 官方支持的系统,所以这是我的推荐。当然,选择权在你。Debian 也很棒 :slight_smile:

2 个赞

@pauln

有一大群人可以帮你搭建新的 VPS,从头安装 Discourse 并恢复你的站点;所以我打算回去睡觉了。

很高兴与你合作。最后,这是我的建议:

  • 启动一台新的 Linode Ubuntu VPS,因为你已经是 Linode 用户了(顺便说一句,我也是)。
  • 从头安装 Discourse(文档很完善)
  • 从备份恢复 Discourse(文档很完善)

有很多才华横溢的人可以在这段旅程中指导你,所以我现在先下线了。

祝好。

3 个赞

早上好(我的时间)@pauln

今天早上我帮你查了一下,如果你由于某种原因暂时不想更换新的 VPS,可以尝试相同的方法;不过将 overlay2 换成 aufs 试试。

根据 Discourse 的启动脚本:

  # 2. running an approved storage driver?
  if ! $docker_path info 2> /dev/null | egrep -q 'Storage Driver: (aufs|zfs|overlay2)$'; then

这意味着,由于某些旧版本的 Debian 支持 aufs,而且从启动脚本来看 Discourse 似乎也支持 aufs,你可以尝试一下。

不过,最好还是升级到新的 Linux 发行版和内核,因为 Debian 7.5 早在两年多前就已停止支持(EOL),只要有机会,最好尽快脱离已停止支持的代码。我肯定会建议你走这条路,并切换到 overlay2 存储驱动(强烈推荐)。当然,选择权在你,如果你想为了好玩试试 aufs,那就尽管去试。学习新东西总是既有趣又富有成效的。

参考:

希望这能帮到你。


测试环境说明:

@pauln

为了帮你,我刚刚用一台全新的 Linode Ubuntu VPS 安装了 Docker,并将存储驱动更改为 aufs

# docker info | grep aufs
 Storage Driver: aufs
  Root Dir: /var/lib/docker/aufs

然后我按照标准的 Docker 安装说明操作:

https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

结果 Discourse 在 aufs 存储驱动上顺利安装,没有任何问题。

所以,如果你愿意,可以在你的 Debian 7.5 VPS 上试试这个方法,当作学习和娱乐。

当然,无论是官方还是非官方的建议,都希望你迁移到一台新的、受支持的 VPS,正如之前提到的。请随时回来告诉我们你的决定和进展。

1 个赞

我刚刚在 launcher 中注释掉了代码块。有时你必须冒险 :smiling_face_with_sunglasses: