【问题标题】:Connection refused to docker host in bridge mode连接拒绝以桥接模式连接到 docker 主机
【发布时间】: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


    【解决方案1】:

    你能检查一下mongo配置文件中的IP吗,你想从外部访问mongo服务器的IP最好在配置文件中提到。

    【讨论】:

    • 你的意思是bind_ip = 127.0.0.1 吗?无论如何,这就是/etc/mongod.conf 文件中定义的内容。这是否意味着我需要在其中添加172.17.0.1
    • 是的,请将其更改为您要连接的 IP,在您的情况下为 172.17.0.1
    • 太棒了!我将它添加到列表中(因为其他服务也需要从 127.0.0.1 连接)现在即使在桥接模式下也可以使用 :-)
    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 2013-07-06
    • 2019-11-12
    • 2017-11-14
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多