从主机访问Docker服务

时间:2020-06-16 11:07:55

标签: docker docker-compose

我有一个具有docker-compose.yml配置的简单网络应用,如下所示:

version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    ports:
      - "5432:5432"

我可以使用postgres://db:5432访问Web应用程序容器中的数据库服务,因为两个容器共享网络。

我想使用postgres://db:5432从主机访问数据库服务。如何将db:5432主机从容器映射到本地主机上的db:5432?我尝试将127.0.0.1:5432 db:5432添加到我的/etc/hosts文件中,但这似乎无效。

1 个答案:

答案 0 :(得分:4)

/etc/hosts文件只是在不存在或没有DNS服务器的情况下静态解析名称的一种方法。它无法映射端口地址。 参考:https://serverfault.com/questions/54357/can-i-specify-a-port-in-an-entry-in-my-etc-hosts-on-os-x

如果您这样做,它将起作用,

127.0.0.1       db

删除端口,它将起作用。

此外,您可以使用localhost: 5432从主机直接访问Postgres。