You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker未使用docker-compose指定的PostgreSQL版本问题求助

解决postgres:15镜像启动后psql版本显示16.1的问题

可能的原因及解决步骤

1. 镜像版本不匹配

配置指定postgres:15,但容器可能实际使用了postgres:16镜像(比如镜像缓存异常、拉取错误)。

  • 执行docker inspect activitiesdb | grep "Image"查看容器使用的镜像ID,对比docker images postgres中postgres:15的镜像ID是否一致。
  • 若不一致,重新拉取正确镜像:docker pull postgres:15
  • 重启容器:docker-compose down && docker-compose up -d

2. 数据卷残留旧版本数据

如果之前用postgres:16启动过容器并复用了db_activities卷,卷中留存的16版本数据会导致版本冲突。

  • (可选)备份现有数据:
    docker run --rm -v db_activities:/data -v $(pwd):/backup postgres:16 pg_dump -U postgres activitiesdb > backup.sql
    
  • 删除旧数据卷:docker-compose down -v
  • 重新启动容器:docker-compose up -d

3. 数据目录挂载路径错误

配置的挂载路径/var/lib/postgresql@15/data不符合官方postgres镜像的默认规范,官方镜像默认数据目录为/var/lib/postgresql/data,错误路径会导致容器未使用挂载卷,转而使用临时存储。
修正docker-compose.yml中的volumes配置:

volumes: 
    - db_activities:/var/lib/postgresql/data

之后重启容器即可。

内容的提问来源于stack exchange,提问作者La Bola Al Riel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:47:54