移动默认的docker postgres数据卷

时间:2018-01-22 10:09:48

标签: postgresql docker docker-volume

我使用以下命令创建了一个docker postgis容器:

docker run -p 5435:5432  -e POSTGRES_PASSWORD=xxxxxxx -e POSTGRES_INITDB_ARGS="-d" mdillon/postgis:9.6

这为/ var / lib / docker / volumes / [some_very_long_id] / _ data

中的数据创建了一个卷

现在我需要将这个卷移到其他地方,以便为我的外包承包商提供备份......而且不知道如何做到这一点。我有点迷失,因为例如数据量和fs安装似乎有不同的替代方案。

那么今天做到这一点的正确方法是什么?以及如何将我当前的数据目录移动到更好的位置?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在运行容器时声明卷装入。例如,您可以像这样运行容器:

docker run -p 5435:5432 -e POSTGRES_PASSWORD=xxxxxxx -e POSTGRES_INITDB_ARGS="-d" \
-v /the/path/you/want/on/your/host:/var/lib/postgresql/data \
mdillon/postgis:9.6

这样,postgres数据目录将位于主机的/the/path/you/want/on/your/host中。

答案 1 :(得分:1)

我没有检查或深入搜索,但在您的情况下,我建议您执行以下步骤:

  1. 使用外部文件夹创建另一个容器。
  2. 使用pg_basebackup获取旧容器中的所有数据到新容器。或者使用复制。
  3. 因此,您有容器外的数据文件夹。

    希望它会对你的情况有所帮助。