【发布时间】:2018-12-08 13:03:34
【问题描述】:
我在 Mac 上使用 docker 并尝试使用 nfs 卷获取 postgresql 数据库的持久容器。
我在/etc/exports 中放了一行/Users/me/db -alldirs *(rw,sync,no_subtree_check,no_root_squash) 并重新启动nfsd。我认为(如果我错了,请纠正我)关键点是 no_root_squash 这将允许客户端 root 用户仍然是 root 用户。然后在我的 docker-compose.yml 中,我将 nfsmount 点声明为以下内容:
version: '2'
volumes:
nfsmountdbdata:
driver: local
driver_opts:
type: nfs
o: addr=host.docker.internal,rw,nolock,hard,nointr,nfsvers=3
device: ":/Users/me/db/data"
nfsmountdbinit:
driver: local
driver_opts:
type: nfs
o: addr=host.docker.internal,rw,nolock,hard,nointr,nfsvers=3
device: ":/Users/me/db/initdb"
services:
## POSTGRES DATABASE
db:
image: postgres:9.6
privileged: true
volumes:
#- ./services/db/initdb:/docker-entrypoint-initdb.d
#- ./services/db/app:/var/lib/postgresql/data
- nfsmountdbinit:/docker-entrypoint-initdb.d
- nfsmountdbdata:/var/lib/postgresql/data
ports:
- 5432:5432
但是当容器 db 启动时,它抱怨很多 chown: changing ownership of '/var/lib/postgresql/data/base/**/**': Operation not permitted。这让我感到非常困惑,因为我做了一些事情(nfs 中的 no_root_squash 配置)来修复它。但它只是行不通。我在这里的理解有什么问题?我正在为 Mac 2.0.0.0 稳定使用 Mac Mojave 和 Docker 桌面。
【问题讨论】:
-
你找到解决办法了吗?