我在本地机器上为 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
希望这会有所帮助。
关于postgresql - 如何将 docker 卷从一台机器复制到另一台机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42973347/