“gateway”在`docker inspect`中是什么?

4

我在使用Docker for Mac以及docker-compose运行着nginx,以下是docker inspect中的"Networks"部分。

{
    "Networks": {
        "laradock_backend": {
            "IPAMConfig": null,
            "Links": null,
            "Aliases": [
                "c189cabxfdf9",
                "nginx"
            ],
            "NetworkID": "f4f8d8ff07ae90d5758644968d96f2g653fc5188c895f19c2d08de92c46cc075",
            "EndpointID": "f8c6d5a8b061c75c44c2e078a65928a9b45dd91833fc05x7f249c64a180e84a1",
            "Gateway": "172.21.0.1",
            "IPAddress": "172.21.0.4",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "MacAddress": "02:02:fc:15:10:05",
            "DriverOpts": null
        },
        "laradock_frontend": {
            "IPAMConfig": null,
            "Links": null,
            "Aliases": [
                "c189cab4ddg1",
                "nginx"
            ],
            "NetworkID": "7b410b1bd764617a3f6146862307f886681e57aaxf057e4308f1236e1558ffcb",
            "EndpointID": "0caa62bc5bbx600a5b1f260ebg11014e05394671ca347f818bfx819f43f7011e",
            "Gateway": "172.22.0.1",
            "IPAddress": "172.22.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "MacAddress": "01:41:af:16:00:03",
            "DriverOpts": null
        }
    }
}

我不是计算机网络方面的专家。但我经常使用docker,我只是想更好地理解每当我通过我的主机(localhost)连接到docker容器时发生了什么。

我发现每个网络都有一个“网关”。 我在我的主机上找不到这样的接口。网关在哪里?为什么我们需要这样一个东西?

任何简单的图表都会很有帮助... 谢谢。

1个回答

2
网关是连接网络与外部世界的设备。当数据包被发送到不在同一网络中的目标时,数据包会被发送到网关,网关知道如何将其发送到下一个路由器,以此类推,直到数据包到达目的地。
在这种情况下,该网关设备是虚拟的,并且是容器和主机物理接口之间的桥梁的一部分。这种仿真是必需的,以便允许在容器中运行的软件像在主机上一样运行。它还将容器的网络与主机的网络分开(分离是使用 Docker 的原因)。

你说的“桥的一部分”是什么意思?我认为网关本身就是一座桥。 - yaquawa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接