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

我在本地机器上为postgres创build了一个docker卷。

docker create volume postgres-data 

然后,我用这个卷,并运行一个docker。

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

之后,我做了一些数据库操作,自动存储在postgres数据。 现在我想从我的本地机器复制该卷到另一台远程机器。 如何做同样的事情。

注 – 数据库大小非常大

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

希望这可以帮助。