当前位置: 首页 > 面试题库 >

如何将Docker卷从一台机器复制到另一台机器?

金烨华
2023-03-14
问题内容

我在本地计算机上为postgres创建了一个docker卷。

docker create volume postgres-data

然后,我使用了该卷并运行了一个docker。

docker run -it -v postgres-data:/var/lib/postgresql/9.6/main postgres

之后,我做了一些数据库操作,这些操作自动存储在postgres-data中。现在,我想将该卷从本地计算机复制到另一台远程计算机。怎么做一样。

注意-数据库大小非常大


问题答案:

如果第二台计算机启用了SSH,则可以在第一台计算机上使用Alpine容器来映射该卷,将其捆绑并发送到第二台计算机。

看起来像这样:

docker run --rm -v <SOURCE_DATA_VOLUME_NAME>:/from alpine ash -c \
    "cd /from ; tar -cf - . " | \
    ssh <TARGET_HOST> \
    'docker run --rm -i -v <TARGET_DATA_VOLUME_NAME>:/to alpine ash -c "cd /to ; tar -xpvf - "'

您将需要更改:

  • SOURCE_DATA_VOLUME_NAME
  • TARGET_HOST
  • TARGET_DATA_VOLUME_NAME

或者,您可以尝试使用此帮助程序脚本https://github.com/gdiepen/docker-convenience-
scripts

希望这可以帮助。



 类似资料:
  • 使用时,保存的图像是独立的,因此图像的大小会变大。(~对于10个图像,大小约为9GB) 在提取docker图像后,我探索: 有没有办法有效地导出图像? 注:我已经提到了这一点。这个问题不是它的重复。它没有解决我上面提到的用例。

  • 问题内容: 如Docker文档中有关使用卷的文档中所述,存在所谓 的仅数据 容器的概念,该容器提供了可以安装到多个其他容器中的卷,无论该数据容器是否正在运行。 基本上,这听起来很棒。但是有一件事我不明白。 这些卷(由于可移植性原因, 未 明确映射到主机上的文件夹,如文档所述)由Docker在主机上的某个内部文件夹中创建和管理。 假设我使用了这样一个卷,然后需要将其从一台主机迁移到另一台主机-如何移

  • 正如Docker有关卷的文档中所述,存在所谓的仅数据容器的概念,它提供了一个可以装入多个其他容器的卷,无论仅数据容器是否实际运行。 基本上,这听起来很棒。但有一件事我不明白。 这些卷(如文档所述,出于可移植性原因,这些卷不会显式映射到主机上的文件夹)由Docker在主机上的某个内部文件夹中创建和管理()。 假设我使用这样一个卷,然后我需要将它从一台主机迁移到另一台主机——我如何移植该卷?AFAIC

  • 问题内容: 我正在尝试使用Docker API从另一台机器连接到docker守护进程。我能够成功执行以下命令: 但是当我使用真实的IP地址时不是: 为什么使用非本地IP时无法连接? 我在Vagrantfile中使用带有以下内容的Vagrant VM: 以下是iptables: 问题答案: 遇到类似的问题,在这里我没有看到的一件事是您需要启动docker来侦听网络和unix套接字。主机上的所有常规d

  • 我希望使用ssh作为将托管在公司网络中的docker映像传输到私有云的传输机制。设置VPN连接将不是我的首选(因为它只是增加了复杂性)。有什么想法从哪里开始看这个吗 编辑:我和我的团队成员可能每天都要这样做很多次(拉和推)