Docker 版本不受支持的问题

你好,

我更改了 SMTP 设置,并正在尝试重建应用。

cd /var/discourse
./launcher rebuild app

输出:错误:不支持 Docker 版本 1.9.1,请至少升级到 17.03.1,或推荐升级到 17.06.2。

我该怎么办?有什么建议吗?

您是否尝试将 Docker 升级到至少 17.03.1?如果您不确定如何操作,请运行 uname -a 并将结果粘贴在这里。

1 个赞

你好,谢谢你的回答。

结果如下:
Ekran Resmi 2020-03-15 01.13.43

sudo apt-get update && sudo apt-get upgrade 应该能解决问题。具体方法完全取决于您最初是如何安装 Docker 的。

1 个赞

更新后是否有风险会干扰 Discourse 的正常运行?

此类情况始终存在风险,但如果您想重新构建应用,则需要升级 Docker。

我的建议是:向您的社区说明您正在进行维护,如果尚未备份,请先进行备份,然后再执行升级。

1 个赞

Kernel 3.13.0-147 感觉有点旧了?

4 个赞

是的。

在这种情况下,我们需要为内核单独更新吗?还是以下命令就足够了?

sudo apt-get update && sudo apt-get upgrade

apt-get dist-upgrade 也可以吗?最好查阅一下 Ubuntu 文档以确认。

4 个赞

我只是想更改 app.yml 中的邮件服务和 SMTP 设置。有没有其他方法可以在不更新的情况下验证这些设置(app.yml)?

出于安全原因,您确实应该运行最新版本的软件,但这由您决定……

根据 How to reload configuration after app.yml changes? - #2 by riking app.yml 的 env 部分中更改设置,且该 env 变量不用于引导过程,那么执行 ./launcher restart app 即可重新加载 SMTP 设置。

4 个赞

./launcher restart app 也无法运行。错误:不支持 Docker 版本 1.9.1。

我们还能做些什么?

问题在于 launcher rebuild 会从 GitHub 拉取最新代码,而该代码与您的 Docker 版本不兼容。如果您尚未运行重建操作,则可以避免此问题;但在当前情况下,唯一的解决方案很可能是继续向前推进。正如 @yanokwa 所指出的,您绝对不应该运行过旧的操作系统或 Discourse 版本,这样做会带来一系列安全问题。

您尝试执行上述 dist-upgrade 时发生了什么?

4 个赞

我没有使用这个命令。我正在寻找一种无需更新就能解决的方法。(暂时这样。:slight_smile:

您已更新 Discourse,这意味着现在需要修复 Docker。

dist-upgrade 可以实现这一点。假设您已备份数据,且服务器上仅运行此一个应用,目前风险很小。最坏的情况是您只需重新运行 30 分钟的安装指南并恢复备份。

是您搭建的服务器吗?如果是,您还记得是如何搭建的吗?您提供的信息越多,我们就能越快为您找到解决方案。

4 个赞

我并没有构建服务器。我创建了一个快照,并正在该快照上工作。

我使用了以下命令来升级 Docker 和内核版本:

sudo apt-get dist-upgrade
sudo apt-get update && sudo apt-get upgrade

升级后,Docker 版本仍然是 1.9.1 :frowning:

我尝试使用以下命令升级 Docker 版本:

wget -qO- https://get.docker.com/ | sh

当我运行 docker run -it --rm hello-world 命令时,输出如下:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 23\"": unknown.

当我运行 ./launcher rebuild app 时,输出如下:

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

Unable to find image 'discourse/base:2.0.20200220-2221' locally
2.0.20200220-2221: Pulling from discourse/base
bc51dd8edc1b: Pulling fs layer
27ae5d171719: Pulling fs layer
bc51dd8edc1b: Verifying Checksum
bc51dd8edc1b: Download complete
bc51dd8edc1b: Pull complete
27ae5d171719: Verifying Checksum
27ae5d171719: Download complete
27ae5d171719: Pull complete
Digest: sha256:b3acee0b655f071e98205dbd12fa78b95a6dd4038d27f1259177f76ab2efe4f7
Status: Downloaded newer image for discourse/base:2.0.20200220-2221
/usr/bin/docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 23\"": unknown.
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

升级 Docker 后,您可能需要重启系统。

1 个赞

重启后输出相同:

/usr/bin/docker: 来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:348: 启动容器进程导致 "process_linux.go:301: 为 init 运行 exec setns 进程导致 \"退出状态 23\"": 未知。
您的 Docker 安装无法正常工作

参见:https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam