MacOS上的Docker,无法将Postgres绑定到端口5432

时间:2019-07-16 16:49:45

标签: postgresql macos docker docker-compose

不确定这是否是Docker for Mac,我的Postgres安装(通过Homebrew或其他一些奇怪的本地问题)出现的问题。

可能值得一提的是,我从未在Linux上遇到过此问题。

这是我的docker-compose.yml文件中使用postgres图片的摘录:

services:
  postgres:
    image: postgres
    environment:
      - POSTGRES_DB=some_db
      - POSTGRES_USER=some_user
      - POSTGRES_PASSWORD=supersecretpassword
    ports:
      - 5432:5432

启动撰写服务docker-compose up之后,我可以看到我的postgres容器正在运行(docker ps)。

我也可以直接通过docker exec

连接到它
docker exec -it <container_id> psql -d some_db -U some_user

到目前为止一切正常……

但是,当我尝试通过本地psql客户端连接到Docker postgres实例时:

psql -h localhost -p 5432 -U some_user -d some_db

它没有连接到postgres的Docker实例,而是试图使用我的本地postgres实例。

现在奇怪的部分...

当我更改docker-compose.yml中的端口绑定时 来自5432:5432

5433:5432(5433可以是任何开放端口)

我能够通过本地psql客户端按预期连接到Docker postgres实例:

psql -h localhost -p 5433 -U some_user -d some_db
# After being prompted for my password I'm in!

我不介意绑定到其他端口,但是我仍然很好奇这里发生了什么!

任何人都知道发生了什么事吗?

  • 我只是不能绑定到端口5432吗?
  • 这是Mac上的Docker吗?
  • 我安装Postgres的方式是否有问题?

谢谢!

0 个答案:

没有答案