【问题标题】:How to mount postgres backup into the postgres container running如何将 postgres 备份挂载到正在运行的 postgres 容器中
【发布时间】:2021-01-19 07:05:02
【问题描述】:
docker run -d --rm --name dummy -v postgres_volume:/root alpine tail -f /dev/null
docker cp ./data dummy:/root
docker stop dummy
docker run -p 5432:5432 -v postgres_volume:/var/lib/postgresql -e POSTGRES_PASSWORD=password postgres

以上命令报错:mkdir: cannot create directory ‘/var/lib/postgresql’: Permission denied.

docker cp 命令中的./data 包含 Postgres 备份。

我错过了什么?

【问题讨论】:

    标签: postgresql docker docker-volume


    【解决方案1】:

    您(或者更确切地说是 postgres)缺少您复制的文件的权限。这应该可以解决它:

    docker run --rm -v postgres_volume:/var/lib/postgresql postgres /bin/sh -c \
    'chown --recursive $(id -u postgres):$(id -g postgres) /var/lib/postgresql'
    

    【讨论】:

    • 没用。容器正在退出。数据文件夹具有当前用户权限
    • @m9m9m 是 ./data 目录还是 postgres 转储文件?
    • ./data 是另一个 Postgres 容器的备份。它里面有 pg_ 文件夹
    • @m9m9m 我的意思是它是如何制作的。您是刚刚从另一个实例复制/var/lib/postgresql/data 还是使用了pg_dump
    • 复制的 /var/lib/postgresql/data
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2018-04-09
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多