【问题标题】:Docker MACVLAN only works OutboundDocker MACVLAN 仅适用于出站
【发布时间】:2023-03-08 18:10:01
【问题描述】:

我正在尝试为我的 docker 容器设置 MACVLAN。 我有一个全新的 Raspbian 和 Docker 安装,并按照 Docker 文档中概述的步骤创建 MACVLAN:https://docs.docker.com/network/network-tutorial-macvlan

网络如下所示:

[
    {
        "Name": "pub_net",
        "Id": "782c49f79f549b11f04a6df98b8b2cbf52deef072e036306231309e44a1c9f3a",
        "Created": "2020-02-25T14:44:12.105402396+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.178.0/24",
                    "Gateway": "192.168.178.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "682a47a60a5478d19b8c6fc923e11c949f70c5c07fe4dc8d94a772524c2820a1": {
                "Name": "IoBroker",
                "EndpointID": "5e7068dd9330792a91e1f1f023bd052d91d1fa93f50a2eb670ef8be81b61587f",
                "MacAddress": "02:42:c0:a8:b2:02",
                "IPv4Address": "192.168.178.2/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "parent": "eth0"
        },
        "Labels": {}
    }

假设我有一个连接到该网络的 Alpine 容器。从容器内部,我可以访问互联网以及我网络上的所有内容。但是,我无法从外部访问 MACVLAN 内的任何容器。我知道这通常不适用于主机,但我不是试图从主机访问容器,而是从我网络上的另一台机器访问。容器的 IP 无法从外部访问。

如果我按照步骤允许主机访问 MACVLAN 上的容器(创建另一个 MACVLAN 并添加路由表条目),我可以从主机访问容器,但仍然不能从外部访问。

也许这更像是一个 Linux 网络问题而不是 Docker 问题?

Docker 版本:19.03.6 操作系统:Raspbian Buster 10,内核版本 4.19.97-v7+

有什么想法会受到赞赏吗?

【问题讨论】:

    标签: linux docker raspberry-pi3 macvlan raspbian-buster


    【解决方案1】:

    这似乎是 Raspbian 中使用的 Linux 内核版本中的 ARP 问题。通过 sudo rpi-update 更新内核后,它现在对我有用。

    【讨论】:

    • 我想了一周,并多次更改了我的 macvlan 配置并尝试了不同的东西,但最后这个该死的命令解决了问题。非常感谢。
    【解决方案2】:

    实际上我从上周五开始遇到同样的问题。

    如果我 ping 主机尝试访问 docker 容器,从容器内部(您的 alpine 容器),我可以从外部访问容器,直到我重新启动容器本身。

    我知道这不是解决方案,但可能有助于确定问题。

    最好的 航空

    【讨论】:

    • 对,这确实有帮助,我可以从外面拿到容器。但这并不是一个实际的解决方案。有人知道为什么会这样吗?
    【解决方案3】:

    我有一个小解决方法可以解决您的问题,因为我也有同样的问题。

    在完成

    之后,我对 omv 5 进行了全新安装
    sudo rpi-update 20354bebcc2a8448128f2348e19e155910d25122
    

    “rpi-update”命令后的字符串(哈希)是修复 ARP 问题的最新 4.19.118 内核

    docker安装问题解决后,我会等待更新到5.X内核。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 2015-08-28
      • 2019-12-06
      • 1970-01-01
      • 2015-07-25
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多