Docker Compose部署PostgreSQL容器执行查询无反馈问题求助
解决Docker Compose部署PostgreSQL后查询无响应问题
针对M2-Pro芯片Ventura 13.3系统上的这个问题,可尝试以下几种解决方法:
修正容器连接命令
将原命令中的-t替换为-it参数,确保同时分配标准输入和伪终端,适配M系列Mac的TTY交互逻辑:docker exec -it CONTAINER_ID psql -U postgres重新连接后执行查询,即可正常获取结果。
直接通过宿主机客户端连接
如果本地已安装PostgreSQL客户端,跳过容器内终端,直接通过端口映射连接数据库:psql -h localhost -p 5432 -U postgres -d postgres检查数据库服务状态
先确认PostgreSQL服务是否真正就绪,查看容器日志:docker logs CONTAINER_ID日志中出现
database system is ready to accept connections字样,才说明服务完全启动,否则等待片刻或排查启动异常。更换ARM兼容镜像
尝试使用Alpine版本的PostgreSQL镜像,其在M系列Mac上兼容性更稳定,修改docker-compose.yml的image字段:version: '3.8' services: db: image: postgres:15-alpine restart: unless-stopped volumes: - postgres-data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres POSTGRES_DB: postgres ports: - 5432:5432 volumes: postgres-data:执行以下命令重新部署:
docker-compose down -v docker-compose up -d注意:
down -v会删除原有数据卷,若需保留数据请跳过-v参数。
内容的提问来源于stack exchange,提问作者Mickers
相关产品推荐
相关产品推荐

