【问题标题】:Cannot access container by "network_mode: host"无法通过“network_mode:host”访问容器
【发布时间】:2020-07-26 01:25:51
【问题描述】:

我不能在 windows 10 的 docker 中使用 network_mode: host。我尝试了不同的图像,它也不能。

我在下面发布我的docker-compose.yaml

docker-compose.yaml

  homeassistant2:
    container_name: hass2
    image: homeassistant/home-assistant:0.112.2
    network_mode: host

但是当设置端口映射时,一切都很好

   ports:
      - '8123:8123'
   # network_mode: host

我的环境是 windows 10

我从命令 docker inspect

获得了一些信息

我在下面发布了一些关于网络设置的内容。

        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "f084a1e7e4966f0bff678e4120c1bcbc7afdd1c55d5164b1dc4a606470c43bcc",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "656b532cdc48c9e34e616ec0a38ef944c5e52e2dfca506ca99e53b4b16206000",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

如果我需要提供其他东西来分析问题,请告诉我。

【问题讨论】:

  • 您在什么平台(Linux/Mac OS/Windows)上运行 Docker?
  • 谢谢,兄弟。这是在 Windows 10 中。
  • 如果删除 network_mode: host 有效,这可能是正确的答案:该选项通常会禁用 Docker 的网络,您通常不需要它。

标签: docker docker-compose home-assistant


【解决方案1】:

在 Windows 或 MacOS 下运行 Docker 时,您实际上是在 Linux 虚拟机中运行 Docker。当您设置network_mode: host 时,您将容器连接到虚拟机的网络环境。这很少有用。

network_mode: host 只有在 Linux 上本地运行 Docker 时才有意义。

你最好坚持使用端口发布。

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 2018-09-07
    • 2022-06-29
    • 2022-11-17
    • 2019-07-18
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多