桥接网络上的Docker反向代理容器指向macvlan网络上的容器

时间:2018-09-18 07:11:26

标签: docker networking reverse-proxy nginx-reverse-proxy macvlan

首先:我知道这一点: Unable to access docker containers from host over macvlan network

我正在使用单个docker主机设置(不受限制,但这无关紧要)。

由于各种原因,我在macvlan网络上使用了一个邮件服务器容器(poste),因为我需要在LAN中有一个IP(防火墙,垃圾邮件过滤,实验)。邮件服务器容器还包含一个Web服务器和WebUI。 我还希望我的反向代理容器(在docker0网络上)指向我的邮件服务器的webui。

没有使用没有添加到我的邮件服务器容器中的2个网络的解决方法吗?例如添加一条路线? 目前,我正在使用第二个网络作为针对我的情况的解决方案。 因此,通过运行 # docker network connect docker0 containername 容器启动后,其中docker0是内部docker网络172.17.0.0/16。

但是,这带来了一些安全问题,恕我直言。尽管我可能可以限制通过网桥对邮件容器的访问仅限于反向代理容器?

当我在主机上使用第二个eth适配器时,我还有另一条探索之路

主机网络适配器:

  • eth0:10.10.0.16/16
  • eth1:10.10.0.17/16

当我做# docker network inspect br0时,就是结果。 br0是macvlan网络的名称。

[
    {
        "Name": "br0",
        "Id": "beb3548b7a4a4fdaba6c3fa2771ea7a8511d44b0e2545abc9b2f7d8ed922",
        "Created": "2018-03-09T17:48:09.444567623+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.10.0.0/16",
                    "Gateway": "10.10.0.99",
                    "AuxiliaryAddresses": {
                        "server": "10.10.0.16"
                    }
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "1c215b70764d198ce95b702f49b1f263a7a68a308f13db2907921d8bd4d9": {
                "Name": "poste",
                "EndpointID": "7d560d531e4f88472b7cbf96b5f460964bf12bdd478f88840475732215ff",
                "MacAddress": "02:42:0a:0a:20:f2",
                "IPv4Address": "10.10.32.242/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "parent": "br0"
        },
        "Labels": {}
    }
]

然后我可以使用

# ip link add link eth1 dev eth1m type macvlan mode bridge
# ip link set eth1m up
# ip route add 10.10.32.242 dev eth1m

现在,我可以从主机ping /与容器通信(即使仅连接了macvlan网络)。 问题是我仍然无法从我的反向代理容器(即docker0网络上)达到10.10.32.242。

0 个答案:

没有答案