将 docker 实例迁移到另一台服务器

问题描述

我正在尝试将现有的 docker 安装迁移到新服务器。 我从旧主机的 /var/lib/docker 创建了一个 tar 文件,并在新主机上的 /var/lib/docker 中解压了 tar 文件夹。

似乎大部分空间都被下一个文件夹利用了:

/var/lib/docker/containers
/var/lib/docker/overlay2
/var/lib/docker/volumes

在新主机上启动 docker 服务时,我可以启动旧容器。但是它们不包含任何数据。是否有可能以某种方式让我的旧容器在新主机上运行并保持它们的数据持久化?

在新服务器上运行后,我可以创建新容器并开始使用持久卷。

解决方法

您需要检查旧服务器以查看安装方式/位置。 docker有多种挂载方式,

  • 绑定挂载:可以通过将主机系统中的指定目录挂载到您的 docker 容器(在您的情况下可能在 /varlib/docker 之外)来使用这些挂载

  • 命名卷:卷是持久化由 Docker 容器生成和使用的数据的首选机制。默认位置是/var/lib/docker on linux

现在要弄清楚这一点,您可以在旧主机上使用 docker inspect <container id/name>。输出中的卷和安装部分可以让您了解您可能还需要备份和恢复的内容。