使用网络“ container:<container_name>”

时间:2019-02-23 20:00:48

标签: docker docker-networking

我正在尝试设置一个firewall容器,该容器仅允许使用iptables通过特定IP地址的出站流量。我还有第二个容器(openvpn),用于使用该IP设置OpenVPN。

防火墙容器位于自定义网络(使用docker network create <name>创建)上,而openvpn容器使用--network container:firewall

防火墙设置似乎正常运行。出口流量仅在连接openvpn时有效。

问题:

我想添加一种在启动openvpn之前检查防火墙是否已配置的方法。我想我将使用nc -l -k -p 5000 localhost在防火墙容器上启动一个套接字,并使用this wait-for script对其进行轮询。

问题是无论如何我都无法从另一个容器中响应该套接字。在firewall容器上,nc -vz localhost 5000连接良好。我以为,由于他们共享了网络堆栈,因此我也可以在nc -vz localhost 5000容器上调用openvpn,但这是行不通的。我尝试了容器在ifconfig中显示的所有IP地址,并尝试不成功地将nc绑定到接口(例如nc -l -k -p 5000)上。

我是否误解了--network container:<name>的工作方式,还是我还缺少其他东西?

我已经使用普通的ubuntu容器以及高山linux对它进行了测试。

0 个答案:

没有答案