如何配置docker-compose.yaml以在Ubuntu 18中访问主机Postgres?

时间:2019-08-07 15:12:59

标签: docker docker-compose

我使用Ubuntu 18,在我的计算机上安装了一个非容器的Postgres数据库,我想从Docker容器进行连接。

我当前的 docker-compose.yaml

version: "3"

services:
    ws-server:
        image: ws-server
        networks:
            - net-ws
        ports:
            - 2020:2020
    shortest-path:
        image: ws-client
        networks:
            - net-ws
        expose:
            - 5000
networks:
    net-ws:

在这里,我想添加一个配置以能够访问主机数据库。

当我使用以下命令运行应用程序时:

  

docker run --rm -it --network = host ws-server

然后一切正常。

那么如何在Ubuntu 18中配置docker-compose.yaml以访问主机Postgres?

1 个答案:

答案 0 :(得分:0)

如我所见,在使用 host 模式时,由于所有服务端口均已发布,因此不需要其他网络。另外,网络 network_mode 不能一起使用。

因此 docker-compose.yaml 起作用:

version: "3"

services:
    ws-server:
        image: ws-server
        network_mode: host
        ports:
            - 2020:2020
    shortest-path:
        image: ws-client
        network_mode: host
        expose:
            - 5000

现在,我可以成功访问主机Postgres数据库。但是,我更喜欢使用私有(而非主机)网络访问主机数据库,以免发布不必要的端口。