[英]Docker compose mounting Volume not works
After docker-compose down
not -v or --volume, and rebuild docker-compose up -d --build
在 docker
docker-compose down
不是 -v 或 --volume,并重建 docker docker-compose up -d --build
There is no data in the new PostgreSQL container.新的 PostgreSQL 容器中没有数据。
Strangely, I have another volume persistent_vol as you can see, and it works perfectly.奇怪的是,如您所见,我还有另一个卷persistent_vol,它运行良好。
This is my docker-compose.yml这是我的 docker-compose.yml
# the version of Docker-compose
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
- persistent_vol:/vol/web
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
environment:
- DB_HOST=db
- DB_NAME=americanos
- DB_USER=postgres
- DB_PASS=supersecretpassword
depends_on:
- db
db:
image: postgres:11-alpine
volumes:
- db_vol:/vol/db
environment:
- POSTGRES_DB=americanos
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=supersecretpassword
volumes:
persistent_vol:
db_vol:
This is inpect db docker container.这是检查 db docker 容器。
"Mounts": [
{
"Type": "volume",
"Name": "americanos-project_db_vol",
"Source": "/var/lib/docker/volumes/americanos-project_db_vol/_data",
"Destination": "/vol/db",
"Driver": "local",
"Mode": "rw",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "27b655ba943c50d63af79584f764bd3944b0918ceb299621a5f0e80562fc9638",
"Source": "/var/lib/docker/volumes/27b655ba943c50d63af79584f764bd3944b0918ceb299621a5f0e80562fc9638/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
Did I miss something?我错过了什么?
Set /vol/db
as PGDATA
environment variable or change volumed path to /var/lib/postgresql/data
because postgres default data file are at /var/lib/postgresql/data
.将
/vol/db
设置为PGDATA
环境变量或将卷路径更改为/var/lib/postgresql/data
因为 postgres 默认数据文件位于/var/lib/postgresql/data
。 https://hub.docker.com/_/postgres https://hub.docker.com/_/postgres
db:
image: postgres:11-alpine
volumes:
- db_vol:/vol/db
environment:
- POSTGRES_DB=americanos
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=supersecretpassword
- PGDATA=/vol/db # added
or或者
db:
image: postgres:11-alpine
volumes:
- db_vol:/var/lib/postgresql/data # changed
environment:
- POSTGRES_DB=americanos
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=supersecretpassword
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.