一尘不染

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

docker

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

docker create volume postgres-data

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

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

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

注意-数据库大小非常大


阅读 233

收藏
2020-06-17

共1个答案

一尘不染

如果第二台计算机启用了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

希望这可以帮助。

2020-06-17