跳到主要内容
版本:Latest

回滚 Docker 安装的 Rancher

危险

Docker installs are not supported in production environments. These instructions are provided for testing and development purposes only. Please don't use this method to install Rancher in production environments.

如果 Rancher 升级没有成功完成,你需要回滚到你在 Docker 升级之前使用的 Rancher 设置。回滚可以恢复:

  • 先前版本的 Rancher。
  • 升级前创建的数据备份。

在你开始前

在回滚到先前 Rancher 版本的过程中,你将输入一系列命令。请按照你环境的实际情况替换占位符。占位符用尖括号和大写字母(如 <EXAMPLE>)表示。以下是带有占位符的命令示例:

docker pull rancher/rancher:<PRIOR_RANCHER_VERSION>

在此命令中,<PRIOR_RANCHER_VERSION> 是升级失败之前运行的 Rancher 版本,如 v2.0.5

请交叉参考下方的图片和表格,了解获取此占位符数据的方法。在开始以下步骤之前,请先记下或复制此信息。

终端 docker ps 命令,显示如何找到 <PRIOR_RANCHER_VERSION><RANCHER_CONTAINER_NAME>![占位符参考](/img/placeholder-ref-2.png)
占位符示例描述
<PRIOR_RANCHER_VERSION>v2.0.5升级前使用的 rancher/rancher 镜像。
<RANCHER_CONTAINER_NAME>festive_mestorf你的 Rancher 容器的名称。
<RANCHER_VERSION>v2.0.5备份对应的 Rancher 版本。
<DATE>9-27-18数据容器或备份的创建日期。

可以通过远程连接登录到 Rancher Server 所在的主机并输入命令 docker ps 以查看正在运行的容器,从而获得 <PRIOR_RANCHER_VERSION><RANCHER_CONTAINER_NAME> 。你还可以运行 docker ps -a 命令查看停止了的容器。在创建备份期间,你随时可以运行这些命令来获得帮助。

回滚 Rancher

如果你在升级 Rancher 时遇到问题,你可拉取先前使用的镜像并恢复在升级前所做的备份,从而将 Rancher 回滚到之前的正常工作状态。

危险

回滚到先前的 Rancher 版本会破坏你在升级后对 Rancher 做出的所有更改。丢失的数据可能无法恢复。

  1. 使用远程终端连接,登录到运行 Rancher Server 的节点。

  2. 拉取升级前运行的 Rancher 版本。把 <PRIOR_RANCHER_VERSION> 替换为该版本。

    例如,如果升级之前运行的是 Rancher v2.0.5,请拉取 v2.0.5。

    docker pull rancher/rancher:<PRIOR_RANCHER_VERSION>
  3. 停止当前运行 Rancher Server 的容器。将 <RANCHER_CONTAINER_NAME> 替换为你的 Rancher 容器的名称:

    docker stop <RANCHER_CONTAINER_NAME>

    你可输入 docker ps获取 Rancher 容器的名称。

  4. 将你在 Docker 升级时创建的备份压缩包移动到 Rancher Server。切换到你将其移动到的目录。输入 dir 以确认它在该位置。

    如果你遵循了我们在 Docker 升级中推荐的命名方式,它的名称会与 rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz 类似。

  5. 替换占位符来运行以下命令,将 rancher-data 容器中的数据替换为备份压缩包中的数据。不要忘记关闭引号。

    docker run  --volumes-from rancher-data \
    -v $PWD:/backup busybox sh -c "rm /var/lib/rancher/* -rf \
    && tar zxvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz"
  6. <PRIOR_RANCHER_VERSION> 占位符指向数据容器,启动一个新的 Rancher Server 容器。

    docker run -d --volumes-from rancher-data \
    --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    --privileged \
    rancher/rancher:<PRIOR_RANCHER_VERSION>

    特权访问是必须的。

    危险

    启动回滚后,即使回滚耗时比预期长,也 不要 停止回滚。如果你停止回滚,可能会导致之后的升级中出现数据库错误。

  7. 等待片刻,然后在浏览器中打开 Rancher。确认回滚成功并且你的数据已恢复。

结果:Rancher 回滚到升级前的版本和数据状态。