回滚 Docker 安装的 Rancher

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

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

在你开始前

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

  1. 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 回滚到之前的正常工作状态。

回滚 Docker 安装的 Rancher - 图1危险

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

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

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

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

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

    1. 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 容器中的数据替换为备份压缩包中的数据。不要忘记关闭引号。

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

    1. docker run -d --volumes-from rancher-data \
    2. --restart=unless-stopped \
    3. -p 80:80 -p 443:443 \
    4. --privileged \
    5. rancher/rancher:<PRIOR_RANCHER_VERSION>

    特权访问是必须的。

    回滚 Docker 安装的 Rancher - 图2危险

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

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

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