如何在默认桥接网络上连接我的 docker 容器?

时间:2021-03-22 11:34:38

标签: docker networking connection

我的 Windows 10 机器上运行着 2 个 docker 容器。我已经能够通过将容器端口绑定到主机端口来与它们交互,但现在我想对另一个我一直用来与这些容器交互的应用程序进行 dockerize。到目前为止,我一直在使用 localhost 配置 url,但是在将第三个应用程序移动到不再是一个选项的容器之后,我做了一些研究并决定使用默认的桥接网络。我检查了所有 3 个容器都在网络中:

[
{
    "Name": "bridge",
    "Id": "c570148be95b87b5bc768de573e85c25fa4584df2c5df5c63b2d317decabe651",
    "Created": "2021-03-22T07:49:32.2206325Z",
    "Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
        "Driver": "default",
        "Options": null,
        "Config": [
            {
                "Subnet": "172.17.0.0/16",
                "Gateway": "172.17.0.1"
            }
        ]
    },
    "Internal": false,
    "Attachable": false,
    "Ingress": false,
    "ConfigFrom": {
        "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {
        "38beb0863d86dab0f014ef9f1ad85f02efa7fb96520455df6f6ea6b5519f60cc": {
            "Name": "my_redis",
            "EndpointID": "58a6cfab6f233ac39c9b043c660124fd9cb98970f99f154ad8b3774a3356e71b",
            "MacAddress": "02:42:ac:11:00:03",
            "IPv4Address": "172.17.0.3/16",
            "IPv6Address": ""
        },
        "70fe60faa0dc3b853edcf2005e16d6219015eafa1c65d48aebd57256ff329f2b": {
            "Name": "rabbitmq",
            "EndpointID": "ed4ac901659785eebfd58de4056efd51addd19eda8c184a38632f1486c178e53",
            "MacAddress": "02:42:ac:11:00:04",
            "IPv4Address": "172.17.0.4/16",
            "IPv6Address": ""
        },
        "b34359519bbf0253af3eba8e800a1bcabeb3cfe6e5cc5007679c6f632f1d4820": {
            "Name": "app",
            "EndpointID": "3363141459cc7eebeca1651b047ed3af81c4af37c3706dfa74e5eadb6f95f302",
            "MacAddress": "02:42:ac:11:00:02",
            "IPv4Address": "172.17.0.2/16",
            "IPv6Address": ""
        }
    },
    "Options": {
        "com.docker.network.bridge.default_bridge": "true",
        "com.docker.network.bridge.enable_icc": "true",
        "com.docker.network.bridge.enable_ip_masquerade": "true",
        "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
        "com.docker.network.bridge.name": "docker0",
        "com.docker.network.driver.mtu": "1500"
    },
    "Labels": {}
}

]

据我所知,icc 已启用并且所有 3 个容器都在网络上。我在应用程序的配置中使用了 IPv4Address:STA_REDIS_HOST = 172.17.0.3(最后有和没有 /16,因为我不确定这意味着什么),而且似乎 ip 正在被解析为其他内容,因为我收到以下错误:

 Error 111 connecting to 127.0.0.1:6379. Connection refused.

我不知道127.0.0.1在哪里,但它看起来像主机的私有IP。

我哪里出错了?

1 个答案:

答案 0 :(得分:0)

我不明白您是如何尝试将一个容器连接到另一个容器的...

docker_bridge_network 演示了使用桥接网络将一个容器 ping 到其他容器