我使用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?
答案 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数据库。但是,我更喜欢使用私有(而非主机)网络访问主机数据库,以免发布不必要的端口。