在MacBook Air上用Docker运行PostgreSQL时遇端口不可用错误
解决Docker PostgreSQL容器端口5432被占用的问题
问题原因
你本地通过Homebrew安装的PostgreSQL服务正在占用默认的5432端口,导致Docker容器无法绑定该端口。
解决方案
方案1:停止本地PostgreSQL服务
如果暂时不需要使用本地的PostgreSQL,直接停止服务即可:
brew services stop postgresql
之后重新启动Docker PostgreSQL容器即可。如果之后需要恢复本地服务,执行:
brew services start postgresql
方案2:修改Docker容器的映射端口
启动容器时将容器的5432端口映射到主机的其他空闲端口(比如5433):
docker run -p 5433:5432 -e POSTGRES_PASSWORD=your_password postgres
后续连接容器内的PostgreSQL时,使用localhost:5433作为连接地址。
方案3:修改本地PostgreSQL的端口(保留本地和容器同时运行)
如果需要同时运行本地和容器的PostgreSQL,修改本地服务的端口:
- 找到PostgreSQL配置文件,M系列芯片Mac路径通常为
/opt/homebrew/var/postgres/postgresql.conf,Intel芯片为/usr/local/var/postgres/postgresql.conf - 打开文件,找到
port = 5432行,将端口改为其他值(比如5433) - 重启本地PostgreSQL服务:
brew services restart postgresql
之后Docker容器可以正常使用5432端口。
内容的提问来源于stack exchange,提问作者Wellynton Spagnol
相关产品推荐
相关产品推荐

