# 升级容器 - 保留配置和数据

**URL:** https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968
**Category:** Self-hosting
**Created:** [2022年六月14日 19:24 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968 "2022-06-14T19:24:09Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![tschloss](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tschloss/32/206387_2.png) [@tschloss](https://meta.discourse.org/u/tschloss)
#### Post date: [2022年六月14日 19:24 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/1 "2022-06-14T19:24:09Z")

</div>

大家好，

我真的很抱歉没有找到这些信息，我认为这是非常基础的。实际上，这并不是关于第一次启动它，而是这个类别似乎最接近我的问题。

问：如何通过 Docker 升级现有安装？  
背景：我使用了应用内“更新”功能，结果导致我的 Discourse 实例崩溃。（如果需要，我可以详细说明）。  
我使用的是云（Hetzner）上的虚拟机中的一个 1-2 年前的 Debian 系统。

因此，我正在寻找下载最新的 Docker 镜像，构建一个容器，但又不丢失我的配置（当然还有数据）。我对 Docker 不是很精通，所以我不敢自己去尝试。

我猜这很简单，因为这是使用（不可变或无状态）容器原则的一部分。

感谢您的支持。

Thomas

---

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [2022年六月14日 19:58 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/2 "2022-06-14T19:58:02Z")

</div>

> [@tschloss](#):
>
> 问：如何通过 Docker 升级现有安装？

> [@Manually update Discourse and Docker image to latest](https://meta.discourse.org/t/how-do-i-manually-update-discourse-and-docker-image-to-latest/23325):
>
> bookmark This guide provides step-by-step instructions for manually updating Discourse, the Docker container, and the Ubuntu operating system on a self-hosted setup. person_raising_hand Required user level: System Administrator warning SSH access to the server. If you self-host Discourse, you occasionally need to run a manual update via the command line to get the latest security releases newest libraries. These updates are not picked up in admin/update, which is why you’ll occasiona…

---

<div class="post-metadata">

### Author: ![tschloss](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tschloss/32/206387_2.png) [@tschloss](https://meta.discourse.org/u/tschloss)
#### Post date: [2022年六月14日 20:23 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/3 "2022-06-14T20:23:56Z")

</div>

谢谢！

这些步骤与首次安装时相同吗？您知道一些关于这些步骤的操作方法吗？

供您参考：我从管理面板内运行了软件更新 - 但未能完成，并且导致我的安装损坏。回滚不起作用。

谢谢  
Thomas

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022年六月14日 20:28 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/4 "2022-06-14T20:28:29Z")

</div>

您是否在上面主题的顶部附近的黑色框中输入了三个命令？是否发生了除升级站点以外的其他情况？

如果您进行了标准安装，那么这就是您问题的答案。它在 #howto 中有说明。这些说明也包含在您安装 Discourse 时应遵循的文档中。

---

<div class="post-metadata">

### Author: ![tschloss](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tschloss/32/206387_2.png) [@tschloss](https://meta.discourse.org/u/tschloss)
#### Post date: [2022年六月14日 20:41 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/5 "2022-06-14T20:41:06Z")

</div>

我进行了标准安装，但这已经是近两年前的事了。我确信升级与首次安装相似但不完全相同（例如，不运行配置助手、停止容器或任何可能不同的地方）。我不想丢失任何东西。（尽管我通过 Docker 学到了一些东西，但在这个主题上我仍然感觉像个新手。）

抱歉，我不知道您“是否输入了三个命令……”这个问题的意思。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022年六月14日 20:45 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/6 "2022-06-14T20:45:56Z")

</div>

> [@tschloss](#):
>
> 抱歉，我不知道您在问题“您是否输入了三个命令……”中的意思。

您是否点击了第一个回复中写着“我如何手动将 Discourse 和 docker 镜像更新到最新版本”的链接？它包含了以下内容：

> [@sam](#):
>
> 我们建议每两个月 SSH 登录到您的 Web 服务器（使用 putty 或您喜欢的 SSH 客户端）并执行
> 
> ```plaintext
> cd /var/discourse
> git pull
> ./launcher rebuild app
> 
> ```
> 
> 特别是当升级页面未显示或您在尝试升级时遇到任何问题时。

所以这些就是您用来升级的命令。您不会丢失任何东西。

但是，如果已经是两年前了，那会稍微复杂一些，因为数据库也需要升级，所以您需要查看 [PostgreSQL 13 更新](https://meta.discourse.org/t/postgresql-13-update/172563)。 （但通常，您只需重建两次即可。）

---

<div class="post-metadata">

### Author: ![tschloss](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tschloss/32/206387_2.png) [@tschloss](https://meta.discourse.org/u/tschloss)
#### Post date: [2022年六月14日 20:56 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/7 "2022-06-14T20:56:00Z")

</div>

哎呀，我错过了这是一个链接。我会仔细研究它以及你给出的额外提示——非常感谢你到目前为止的帮助！！

---

<div class="post-metadata">

### Author: ![tschloss](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tschloss/32/206387_2.png) [@tschloss](https://meta.discourse.org/u/tschloss)
#### Post date: [2022年六月15日 16:23 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/8 "2022-06-15T16:23:52Z")

</div>

我想感谢 @md-misko 和 @pfaffman 提供的非常有价值的输入。

一些文本片段和一些重要的链接已保存在我的库中。

我的问题通过“git pull && launcher rebuild app”序列得到了解决。我忘了在观看构建过程时它看起来有多复杂。

托马斯

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022年六月15日 21:32 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/9 "2022-06-15T21:32:38Z")

</div>

> [@tschloss](#):
>
> 我忘了它在观看构建过程时看起来有多复杂。

幸运的是，你通常可以闭上眼睛。 😉

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2022年七月15日 21:33 UTC](https://meta.discourse.org/t/upgrade-container-keeping-config-and-data/229968/10 "2022-07-15T21:33:13Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
