Postgresql 移动默认docker postgres数据卷

Postgresql 移动默认docker postgres数据卷,postgresql,docker,docker-volume,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\u very\u long\u id]/\u data中的数据创建了一个卷 现在,我需要将此卷移到其他地方,以便为我的外包承包商提供备份。。。我不知道该怎么做。我有点不知所

我使用以下命令创建了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\u very\u long\u id]/\u data中的数据创建了一个卷

现在,我需要将此卷移到其他地方,以便为我的外包承包商提供备份。。。我不知道该怎么做。我有点不知所措,因为在数据卷和fs挂载等方面似乎有不同的选择

那么今天正确的做法是什么呢?如何将我当前的数据目录移动到更好的地方


谢谢。

您可以在运行容器时声明卷装载。例如,您可以如下方式运行容器:

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数据目录将位于主机的
/path/you/want/on/your/host
中。

您可以在运行容器时声明卷装载。例如,您可以如下方式运行容器:

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数据目录将位于主机的
/path/you/want/on/your/host
中。

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

  • 使用外部文件夹创建另一个容器
  • 使用
    pg_basebackup
    获取旧容器到新容器的所有数据。或者使用复制
  • 因此,数据文件夹位于容器外部


    希望它能对您的案例有所帮助。

    我没有深入检查或搜索,但对于您的案例,我建议执行以下步骤:

  • 使用外部文件夹创建另一个容器
  • 使用
    pg_basebackup
    获取旧容器到新容器的所有数据。或者使用复制
  • 因此,数据文件夹位于容器外部


    希望这能对你的情况有所帮助。

    是的,这就是我提到我的问题的“fs挂载”方式。但是我没有以这种方式启动容器,也不想重新创建容器和松散的数据。那么如何移动已经创建的卷呢?我想你不能重命名卷。最好的方法是运行转储,重新启动装载了新卷的容器并恢复数据。不过你会有一个小的停机时间。是的,我想这是我最好的选择。谢谢。是的,这就是我提问题的方式。但是我没有以这种方式启动容器,也不想重新创建容器和松散的数据。那么如何移动已经创建的卷呢?我想你不能重命名卷。最好的方法是运行转储,重新启动装载了新卷的容器并恢复数据。不过你会有一个小的停机时间。是的,我想这是我最好的选择。谢谢。我希望有一个更简单的过程,比如移动和重新设置卷的大小,但是如果没有其他问题,我会按照您的建议做一个很好的ol备份。感谢您的提示我不知道pg_basebackupI希望有一个更简单的过程,例如移动和重新设置卷的大小,但是如果没有其他问题,我会按照您的建议进行很好的ol备份。谢谢你的提示我不知道pg_basebackup