postgresql - 如何将 docker 卷从一台机器复制到另一台机器?

标签 postgresql docker

我在本地机器上为 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/

相关文章:

linux - 以退出代码2退出的Docker容器 “sh can' t open 'start_script.sh':没有这样的文件或目录”

docker - Traefik 2.0 "port is missing"用于内部仪表板

docker - 来自守护程序的错误响应:挂载被拒绝-运行昨晚正在运行的docker应用程序时出错

postgresql - 如何将字符串视为 UTC 时间戳?

javascript - joinmonster 不是一个函数 - GraphQL

postgresql - 使用双引号在 postgres 中输出到 CSV

docker - gitlab kaniko - 没有找到匹配的凭据,依靠匿名

Entity Framework 中的 Postgresql 表继承

sql - 使用postgresql数据库在liquibase中设置初始值

docker - 从travis部署到Digital Ocean Droplet