Docker
如何在 tinc VPN 中執行 dockerized dnsmasq 名稱伺服器,每個容器只有一個程序
我有一個 tinc VPN 網狀網路,世界各地的各種類型的主機都在使用它,我想部署一個 dockerized dnsmasq 名稱伺服器以在該 tinc 網狀網路中使用。
我已經成功建構並配置了一個“胖”多程序 docker 容器(使用 runit),它可以滿足我的需求。它同時執行 tinc 程序和 dnsmasq 程序,並且 dnsmasq 被配置為綁定到容器中的 tinc 網路介面。但現在我正在嘗試使用 1-process 容器建構相同的功能。
我知道如何建構和配置一個基本的 1 程序 dnsmasq 容器,並且我知道如何建構和配置一個基本的 1 程序 tinc 容器。我可以編寫一個簡單的 docker-compose 文件來啟動它們。
我不知道該怎麼做,比如使用 tinc 容器作為網關,將 dnsmasq 容器暴露給網狀網路,允許該 tinc 網路上的其他主機針對 dnsmasq 執行 DNS 查詢。那可能嗎?
在使用 openVPN 進行了一些激烈的Google搜尋並調整了類似的案例之後,我找到了一個可行的設置。從概念上講,您將 dnsmasq 容器的網路綁定到 tinc 容器。這是一個縮寫的 docker-compose.yml,它顯示了要點:
version: '3' services: tinc: ... dnsmasq: depends_on: - tinc network_mode: "service:tinc"
如果您
docker exec -ti dnsmasq /bin/sh
在啟動此操作後,然後ifconfig
在 dnsmasq 容器中執行操作,您將看到 tinc 容器創建的 tinc 網路介面。因此,如果您的 dnsmasq 配置綁定到該網路介面,它就可以正常工作。涼爽的。