无法通过-v

时间:2019-02-13 21:57:56

标签: postgresql docker

尝试与postgres和docker一起玩:

 docker run --name pg -v /Users/xxx/docker/data:/var/lib/postgresql/data -d postgres

立即停止。在不使用-v的情况下运行映像,容器将继续运行。如果我通过/ bin / sh登录,则可以看到带有postgres默认数据库的安装点:

root@f9e0e92dae26:/# df -k
Filesystem     1K-blocks     Used Available Use% Mounted on
none            19049892   737424  17321744   5% /
tmpfs            1025332        0   1025332   0% /dev
shm                65536        8     65528   1% /dev/shm
none           116884912 52807056  64077856  46% /var/lib/postgres/data
/dev/sda1       19049892   737424  17321744   5% /var/lib/postgresql/data

但是我不能以-v选项的方式与主机共享它们。 怎么了?


日志显示:

    The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
initdb: could not create directory "/var/lib/postgresql/data/pg_wal/archive_status": Permission denied
initdb: removing contents of data directory "/var/lib/postgresql/data"

我试图将附加的共享目录传递给VM,除了/ Users和/以外(在我的情况下为/ Users / xxx / docker / data),重新启动VM,但这似乎不起作用。 在VM(docker-machine ssh)中,现在可以看到/ data已挂载。 Docker机器似乎挂载了完整路径的最后一部分。 有什么解释吗? 因此,也许可以更改官方的postgres图像(在dockerfile中?)以更改基本路径,示例值得赞赏。

1 个答案:

答案 0 :(得分:0)

我在Windows下使用Vbox VM遇到了同样的问题。我试图在VM和Windows Os之间使用共享文件夹,这会导致权限问题。我解决了从/ home / {username} / ..为卷传递目录的问题