【问题标题】:Move default docker postgres data volume移动默认 docker postgres 数据量
【发布时间】:2018-06-30 22:25:27
【问题描述】:

我使用以下命令创建了一个 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 挂载似乎有不同的选择。

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

谢谢。

【问题讨论】:

    标签: postgresql docker docker-volume


    【解决方案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 中。

    【讨论】:

    • 是的,这就是我提到我的问题的“fs mount”方式。但是我没有这样启动容器,也不想重新创建容器和丢失数据。那么如何移动已经创建的卷呢?
    • 我猜你不能重命名卷。恕我直言,您最好的选择是运行转储,重新启动安装了新卷的容器并恢复数据。不过,您的停机时间会很短。
    • 是的,我想这是我最好的选择。谢谢。
    【解决方案2】:

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

    1. 使用外部文件夹创建另一个容器。
    2. 使用pg_basebackup 将所有数据从旧容器获取到新容器。或使用复制。

    因此,您在容器外拥有数据文件夹。

    希望对你的案子有帮助。

    【讨论】:

    • 我希望有一个更简单的过程,例如移动和重命名卷,但如果没有其他问题,我会按照您的建议进行良好的 ol 备份。感谢提示不知道 pg_basebackup
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 2021-04-19
    • 2017-02-12
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多