【发布时间】:2020-07-21 18:11:47
【问题描述】:
我需要从容器内连接到在 docker 主机上运行的服务 (mongodb)。
据我了解,通常情况下,这可以通过使用安装 docker 时创建的 bridge 网络的 IP 来完成。
$ ip addr show docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:6c:fe:1a:7c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:6cff:fefe:1a7c/64 scope link
valid_lft forever preferred_lft forever
容器也在该桥接模式下运行,但是无法连接到 172.17.0.1,并且在尝试从容器内连接到 172.17.0.1:27017 时出现 connection refused 错误。
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "5c0d970d746769138db12d51fcd694fceafc8cf2a16edf142d1d860958afe3ac",
"EndpointID": "5474db3debff8029197dfc2723bf3af1262fa20d9a6d878e08db7976b578e5b2",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
}
当我切换到host 模式时,当使用 localhost 作为目标地址时,这将按预期工作。但它没有与172 地址处于桥接模式......为什么?
【问题讨论】:
标签: docker