docker - 在 "gateway"中找到的 `docker inspect` 是什么?

标签 docker docker-compose

我有 nginx 在 docker 中运行(Docker for mac,使用 docker-compose),这里是 docker inspect 的“网络”部分.

{
    "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 容器时发生的事情。

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

任何简单的图表都会有所帮助……
谢谢。

最佳答案

网关是将网络连接到外界的设备。当一个数据包被发送到不在同一个网络中的目的地时,该数据包被发送到网关,网关知道如何将它发送到下一个路由器,依此类推,直到数据包在目的地接收。

在这种情况下,这个网关设备是虚拟的,它是容器和主机物理接口(interface)之间的桥梁的一部分。为了允许在容器中运行的软件像在主机上一样运行,需要这种仿真。它还将容器的网络与主机的网络分离(分离是您使用 docker 的动机)。

关于docker - 在 "gateway"中找到的 `docker inspect` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925792/

相关文章:

php - 使用composer时的pdo_mysql dsn

docker - 使用 docker-compose 构建两个不同标记的 docker 镜像

docker - 如何在EC2上运行一个一次性docker image命令?

python - Postgres docker-image 不会运行也不会启动

linux - Docker 守护进程的名称是什么?

docker - 我应该使用systemd还是docker-compose来保持Docker容器在我的系统上运行?

linux - Kubernetes 将主机路径挂载到容器内的特定位置

php - 来自构建 : is working but not working from pulled image 创建的镜像的 Docker 容器

docker - 评估Hadoop性能所需的数据大小

docker - 交替使用 “docker”和 “docker-compose”命令会有什么后果?