尝试与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中?)以更改基本路径,示例值得赞赏。
答案 0 :(得分:0)
我在Windows下使用Vbox VM遇到了同样的问题。我试图在VM和Windows Os之间使用共享文件夹,这会导致权限问题。我解决了从/ home / {username} / ..为卷传递目录的问题