如何在一个tinc VPN中运行dockerized dnsmasq名字服务器,每个容器只有一个进程

我有一个由世界各地的各种types的主机使用的tinc VPN网状networking,我想部署一个dockerized dnsmasq名称服务器在该tinc网格中使用。

我已经成功地构build和configuration了一个“胖”的多进程docker容器(使用runit),这正在做我正在寻找的。 它同时运行tinc进程和dnsmasq进程,dnsmasq被configuration为绑定到容器中的tincnetworking接口。 但是现在我正在尝试使用1进程容器来构build相同的function。

我知道如何构build和configuration一个基本的1进程dnsmasq容器,我知道如何构build和configuration一个基本的1进程tinc容器。 我可以写一个简单的docker-compose文件,将它们都带上来。

我不知道该怎么做,就像使用tinc容器作为网关一样,将dnsmasq容器暴露给网状networking,允许该tincnetworking上的其他主机针对dnsmasq运行DNS查询。 那可能吗?

在做了一些大量的search引擎并且使用类似openVPN的用例之后,我想出了一个可行的设置。 从概念上讲,您将dnsmasq容器的networking绑定到tinc容器。 这里有一个简短的docker-compose.yml,它显示了要点:

version: '3' services: tinc: ... dnsmasq: depends_on: - tinc network_mode: "service:tinc" 

如果你在启动docker exec -ti dnsmasq /bin/sh后,在dnsmasq容器中执行一个ifconfig ,你会看到tinc容器创build的tincnetworking接口。 所以,如果你的dnsmasqconfiguration绑定到该networking接口,它只是工作。

凉。