我是Docker的新手。我正在我的本地机器上运行PostgreSQL(即在Mac OS上)。我的应用程序在Docker中运行。我想要的是,我的应用程序应该能够从Docker中访问PostgreSQL(其中有很多生产数据,不能在Docker上运行)服务。怎么做?有人可以给我提供一个这样做的示例吗?
我是Docker的新手。我正在我的本地机器上运行PostgreSQL(即在Mac OS上)。我的应用程序在Docker中运行。我想要的是,我的应用程序应该能够从Docker中访问PostgreSQL(其中有很多生产数据,不能在Docker上运行)服务。怎么做?有人可以给我提供一个这样做的示例吗?
最终,我找到了一种在docker中链接外部服务的解决方案。在docker-compose.yaml
中添加以下行:
extra_hosts:
my-local-host: 10.0.0.10 #Local machine IP
environment:
- SERVER=http://my-local-host:3000
docker-compose.yaml
的。@Vinigas - Sunderdocker0
的网络接口,主机使用IP 172.17.0.1
。每个连接到默认网络的容器都会获得172.17.0.X
范围内的IP。这样,容器可以通过与172.17.0.1[:port]
通信来访问在主机上运行的服务,因为它们在同一网络上...已知限制、用例和解决方法
以下是Docker for Mac网络堆栈当前的限制摘要,以及一些解决方法的想法。 在macOS上没有
docker0
桥接由于Docker for Mac中实现网络的方式,您无法在macOS上看到
docker0
接口。该接口实际上位于HyperKit
中。用例和解决方法
我想从容器连接到主机上的服务
Mac具有可变的IP地址(如果您没有网络访问,则没有IP地址)。从
17.12
开始,我们建议连接到特殊的仅限Mac的DNS名称docker.for.mac.host.internal
,该名称解析为主机使用的内部IP地址。
services:
my_app:
build: .
image: my_app:latest
network_mode: host