【问题标题】:How can I connect my docker containers on the default bridge network?如何在默认桥接网络上连接我的 docker 容器?
【发布时间】:2021-03-22 11:34:38
【问题描述】:

我的 Windows 10 机器上运行了 2 个 docker 容器。我已经能够通过将容器端口绑定到主机端口来与它们进行交互,但是现在我想对另一个我一直用来与这些容器交互的应用程序进行 docker 化。到目前为止,我一直在使用 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。

我哪里错了?

【问题讨论】:

  • 127.0.0.1 已解析,因为它在您的应用程序中的某处配置为127.0.0.1localhost。主机IP应该不带/24,服务器也会在主机my_redis上可用(服务名就是主机名)

标签: docker networking connection


【解决方案1】:

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

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

【讨论】:

  • 我正在使用 docker network inspect bridge 命令获取每个容器的 IPv4Address,然后尝试使用该 IP 地址将一个容器指向另一个容器。到目前为止它不起作用。
  • 您是否试图从网桥的容器内指向?
猜你喜欢
  • 1970-01-01
  • 2017-09-30
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多