pauln
(Paul Nate)
1
大家好,我在更新时遇到了一个问题,提示如下:
如果您希望继续使用当前不受支持的存储驱动程序,
请阅读启动器的源代码,并找出如何绕过此检查。
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
neounix
(Dark Matter)
2
你好 @pauln
如果你的主机仅运行 Docker 以支持 Discourse,且你的 Linux 内核支持 OverlayFS,那么我建议你(谨慎地)重新配置 Docker,使其使用 overlay2 存储驱动。
希望这能帮到你。
2 个赞
pauln
(Paul Nate)
5
您能告诉我如何操作吗?
我运行在 Linode (Debian 7.5) 上。
您能告诉我如何重新配置 Docker 吗?
neounix
(Dark Matter)
10
@pauln
嘿,我已经启动并清醒了。
你想做什么?
你是想升级到更新版本的 Debian,还是希望我先看看能否让你的 7.5 版本恢复运行?
如果你希望我先尝试让 7.5 版本恢复运行,我需要了解以下信息:
问题是,当你更改 Docker 配置文件中的存储驱动时,所有现有的容器将无法访问。因此,我们需要执行以下步骤:
- 确保你已拥有完整的 Discourse 备份(始终如此)
- 关闭 Docker。
- 编辑 Docker 配置文件以更改存储驱动。
- 重启 Docker。
- 重新构建 Discourse。
如果你的 Debian 内核支持 OverlayFS,整个过程将顺利进行。如果不支持,操作会失败,但不会造成任何损害,我们可以回退到 devicemapper。
请告知你希望如何进行。
谢谢。
1 个赞
pauln
(Paul Nate)
11
好的,我想先让它运行在 7.5 版本上。Docker 目前只运行 Discourse。
谢谢,我们开始吧 
1 个赞
neounix
(Dark Matter)
12
好的……我就是这么想的:slight_smile:
实际上,步骤在此处有详细说明:
快速浏览一下,并告诉我你是否对所述步骤没有问题,或者是否有任何疑问。
谢谢。
1 个赞
pauln
(Paul Nate)
13
好的,让我试试这些步骤,然后回复你?我之前尝试过类似的方法,但没有成功。我会随时向你更新进展。
neounix
(Dark Matter)
14
如果您的 Linux 内核不支持 OverlayFS,操作将会失败。
别担心。
您可以随时回退回去;)
如果操作没有失败,那我就可以回去继续睡觉了:slight_smile:
neounix
(Dark Matter)
16
Docker 无法重启。
换句话说,Docker 说明中的第 5 步(见上文)将会失败:
5. 启动 Docker。
$ sudo systemctl start docker
这可能会失败,也可能会成功……
(您可能需要使用其他命令代替 systemctl,但概念相同)
1 个赞
neounix
(Dark Matter)
18
祝你玩得开心。
我不打算喝咖啡,也不指望奇迹发生,更不指望你的旧版 Linux 内核(出于某种奇怪的原因)真的支持 OverlayFS。
老实说,我快速“谷歌”了一下,结果并不乐观,但我还是尽量保持乐观。

2 个赞
pauln
(Paul Nate)
19
没有成功。
我该如何将论坛迁移到新的 VPS,同时不丢失任何用户数据?
Stephen
(Stephen)
20
下载您的 app.yml 和最新的备份文件。
您的 app.yml 通常位于 /var/discourse/containers。
备份文件位于 /var/discourse/shared/CONTAINERNAME/backups。
如果您的 Discourse 站点无法访问,仍可通过 SFTP 或 SCP 下载这些文件。
neounix
(Dark Matter)
21
嗨 @pauln
很遗憾听到这个消息。我原本就怀疑你旧的内核不支持 OverlayFS,但尝试一下并在过程中学习通常也无妨。
在新环境中,你是想继续用 Debian,还是改用 Ubuntu?
我自己用 Ubuntu“已经很久了”,而且它也是 Discourse 官方支持的系统,所以这是我的推荐。当然,选择权在你。Debian 也很棒 
2 个赞
neounix
(Dark Matter)
22
嘿 @pauln
有一大群人可以帮你搭建新的 VPS,从头安装 Discourse 并恢复你的站点;所以我打算回去睡觉了。
很高兴与你合作。最后,这是我的建议:
- 启动一台新的 Linode Ubuntu VPS,因为你已经是 Linode 用户了(顺便说一句,我也是)。
- 从头安装 Discourse(文档很完善)
- 从备份恢复 Discourse(文档很完善)
有很多才华横溢的人可以在这段旅程中指导你,所以我现在先下线了。
祝好。
3 个赞
neounix
(Dark Matter)
23
早上好(我的时间)@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 中注释掉了代码块。有时你必须冒险
!