很多人把 postgres:17 升到 postgres:18 之后,会遇到一个很诡异的现象:docker-compose.yml 里明明已经写了命名卷,结果容器启动后还是多出一个随机名字的数据卷,真正的数据还常常写进了那个随机卷里。
这篇文章把这个问题完整讲透:
一句话结论
这通常不是 POSTGRES_DB 的问题,也不是 Docker Compose “失效”了,而是 PostgreSQL 官方 Docker 镜像在 18 版本修改了默认 PGDATA 和 VOLUME 路径。如果你还沿用旧版本的挂载路径,Docker 就会自动创建一个匿名卷,真正的数据往往[……]