当 net="host" 时按名称地址 docker 容器

Address docker container by name when net="host"

我在使用 docker 的 --net="host"

时遇到了一些奇怪的问题

在自定义网络中部署容器时,我可以使用它的名称对其进行寻址。但是当指定 --net="host" 而不是 --net="customnetwork" 时,不会暴露任何端口,而且我无法以任何方式寻址容器。下面是主机网络检查

docker network inspect host
[
    {
        "Name": "host",
        "Id": "663f54513dc2b631d6f81457a49374da3bc3193ac0617497c018c47520600e22",
        "Scope": "local",
        "Driver": "host",
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Containers": {
            "836433bfa612f84fa3d73dec0f920e47affc529b64636f5e1bf38a8b7ced2d75": {
                "Name": "elasticsearch",
                "EndpointID": "79950c18d12d6c7a6715135287d48c7963bed21c7b09b28f6d443b7040eea697",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            },
            "86d4bd0c232a350371131c300c417877e0fb0c54b831f85093b0d2228d9b4f1a": {
                "Name": "mongo",
                "EndpointID": "492022820dd1e0a634e63c97962575b0bffe1c137163cce4df30aa8da39d1159",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            },
            "e4b9179849afa529a6249b067c27953d0b187afdd5fac76112bb9b1369ae9556": {
                "Name": "graylog",
                "EndpointID": "e705eede1ddf897c8c4fc45ae6fcf77db8228b1a0c2d318f6045846e52951b93",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            }
        },
        "Options": {}
    }
]

如您所见,没有分配 IP 地址,也没有任何更改。

我对 docker 比较陌生,也许我漏掉了什么。

关于背景的一些信息:

我正在使用 docker 来部署 graylog2。它通过主机名引用 mongodb 和 elasticserach,并且需要能够侦听主机上的端口以捕获传入的日志消息。端口已配置 post 部署。

Docker 版本:1.10.3,构建 20f81dd

感谢任何帮助。

感谢您的宝贵时间。

当您执行 --net=host 时,没有单独的网络,没有要转发的端口,因为它只是在您的主机上侦听(您不能转发给自己,尤其是因为您正在使用该端口),并且没有单独的IP,它是你主机的IP。