我有一台运行OpenVPN的服务器公开了一些私有IP地址,我希望我的docker swarm服务可以访问这些地址。
理想情况下,容器内不会有OpenVPN客户端,因为预计映像将部署在不需要VPN的环境中。
到目前为止我尝试过的
我已使用dperson / openvpn-client映像成功将容器连接到我的VPN 。
我使用该--net=container:my-vpn-client
标记成功启动了另一个使用该容器作为其网络的容器。
现在,我正在尝试设置一个可以访问我的私有IP地址的docker服务,我发现的是:
- 我无法在服务中运行openVPN客户端,因为它无法提供
cap-add: NET_ADMIN
。Docker在讨论此问题时存在一些开放性问题,但它们仍然是开放性的。 - 我认为我可以让openVPN客户端容器在群集集群旁边运行,但是我不能使用
network_mode: "container:my-vpn-client"
它,因为它不受支持并且确实有意义,因为我无法强制在容器的每个节点上都存在一个任意容器蜂拥而至,这本身并不是一项服务。 - 我尝试创建一个可连接的网络(网桥/覆盖),然后将我的OpenVPN客户端容器粘在其中,并神奇地期望该网络的其他成员通过该管道...我对此感到失望。
所以我在这里,有什么主意吗?
PS如果可以帮助,这主要是设置一些自动化测试,这些测试将以swarm模式在单台docker机器上运行服务,如swarm init>堆栈部署>运行测试> swarm离开。所以,如果有一个“ hack”……我可能会感兴趣;)
ccr
文件来路由流量,就像处理本地网络一样。与所有TCP / IP路由一样,“ 或WireSharktraceroute
都是您最好的朋友tcpdump
”。