我使用以下docker-compose.yml文件启动Postgres容器:
version: '3'
services:
db:
image: postgres:latest
container_name: postgres
environment:
POSTGRES_USER: usr
POSTGRES_PASSWORD: pswd
POSTGRES_DB: db
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- 5432:5432
volumes:
- nfs_cur_dir:/var/lib/postgresql/data
volumes:
nfs_cur_dir:
driver: local
driver_opts:
type: nfs
o: "addr=10.15.187.88,rw"
device: ":/u/uname/home/database"
在启动容器时,我遇到了以下错误
$sudo ./docker-compose up db
Starting postgres ... done
Attaching to postgres
postgres | mkdir: cannot create directory ‘/var/lib/postgresql/data’: Permission denied
postgres exited with code 1
database
目录的权限为 777
drwxrwxrwx 3 uname grpname 4096 May 5 22:57 database
故障后我还看到创建了 pgdata
目录:
drwx------ 2 polkitd root 4096 May 5 22:57 pgdata
注意:
- Postgres 的数据目录被映射到 NFS 位置。因此,我在 docker-compose 中定义了一个新的 NFS 卷,并将其映射到 postgres 容器。
- 我正在使用 PGDATA 环境变量来定义数据目录的不同位置。
- 除了上述两个事情之外,没有什么特别的。如果我使用本地驱动器位置作为数据目录,这可以正常工作!