我正在使用Docker Compose来运行几个容器,其中包括一个Postgres镜像的容器。我试图向该容器添加卷来保持容器构建之间的数据一致性。但是,当它尝试在容器内创建此卷的目录时,我收到了一个错误。
我运行: docker-compose build 然后 docker-compose up 然后我收到以下错误:
ERROR: for cxbenchmark_db_1 Cannot start service db: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"rootfs_linux.go:57: mounting \\"/var/lib/docker/volumes/69845a017b4465e9122852a75ca194db473df95fa218658b8a60fb56eba9be9e/_data\\" to rootfs \\"/var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged\\" at \\"/var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged/var/lib/postgresql/data\\" caused \\"mkdir /var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged/var/lib/postgresql/data: permission denied\\"\""
我的完整的docker-compose.yml文件如下(请注意定义了卷的服务名为db):
我运行: docker-compose build 然后 docker-compose up 然后我收到以下错误:
ERROR: for cxbenchmark_db_1 Cannot start service db: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"rootfs_linux.go:57: mounting \\"/var/lib/docker/volumes/69845a017b4465e9122852a75ca194db473df95fa218658b8a60fb56eba9be9e/_data\\" to rootfs \\"/var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged\\" at \\"/var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged/var/lib/postgresql/data\\" caused \\"mkdir /var/lib/docker/overlay2/627956d63fb0480448079577a83b0b54f83866fdf31136b7c669541c3f672355/merged/var/lib/postgresql/data: permission denied\\"\""
我的完整的docker-compose.yml文件如下(请注意定义了卷的服务名为db):
version: '3'
services:
nginx:
image: nginx:latest
ports:
- 80:8000
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
- ./src/static:/static
depends_on:
- web
web:
build: .
command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn cx_benchmark.wsgi -b 0.0.0.0:8000"
depends_on:
- db
volumes:
- ./src:/src
- ./src/static:/static
expose:
- 8000
db:
image: postgres:latest
volumes:
- /private/var/lib/postgresql:/var/lib/postgresql
ports:
- 5432:5432
有解决的想法吗?
(关于IT技术)
/private/var/lib/postgresql/data:/var/lib/postgresql/data
但是现在,当postgres容器尝试更改该目录的权限时,我遇到了以下错误:db_1 | chown: changing ownership of '/var/lib/postgresql/data': Operation not permitted
您有什么解决方法吗? - zhirsch/var/lib/docker
让我觉得情况并非如此。/private/var/lib/postgresql/data
的权限位是什么,谁拥有它?这个示例使用的是“Docker for Mac”吗? - Phil E