您好,我在 Docker 中运行 Discourse CE。我拥有 root 权限,并且使用 docker id stop 和 docker image save -o <id> file.tar 来备份容器。之后,我成功升级了 Discourse。现在,我尝试使用 docker image load -i file.tar 和 docker start id 来恢复,但它仍然是升级后的版本,而不是我期望的旧版本。
我哪里做错了?
谢谢
您好,我在 Docker 中运行 Discourse CE。我拥有 root 权限,并且使用 docker id stop 和 docker image save -o <id> file.tar 来备份容器。之后,我成功升级了 Discourse。现在,我尝试使用 docker image load -i file.tar 和 docker start id 来恢复,但它仍然是升级后的版本,而不是我期望的旧版本。
我哪里做错了?
谢谢
这很奇怪。
我期望它不起作用,因为数据库(位于持久存储中)已迁移到旧映像无法支持的版本。
您是如何升级的?是通过命令行重建还是通过 Discourse 用户界面?
您好,
是的,我也不明白。我再试一次,结果相同。我给了 Web UI 一个机会,它运行良好。没有错误,没有问题。
您是删除了 Discourse docker 镜像还是将备份恢复到了另一个镜像?
我没有破坏图像。那是我的失败吗?
我不知道。我不认为我以前用过图像保存。
但我认为我下次会尝试将该备份恢复到新的容器名称。
抱歉,您的问题的答案丢失了。这与之前的问题相同,只是备份和恢复。
持久化数据存储在文件系统上,而不是容器中,正如 @pfaffman 所提到的。
我们应该问:您试图完成什么任务?
这个想法很简单,就是晚上备份整个docker容器。就像在这种情况下,在从beta4升级到beta5之前,以及在出现错误时,恢复到旧容器。
谢谢
您还需要回滚数据库。
您可能需要一个暂存站点来在运行升级之前对其进行测试。您也可以将容器从暂存站点推送到存储库,然后在生产站点上启动它。