如何将数据从主机转发到Docker容器?

我正在使用Docker容器的项目。 Docker安装在Windows 10主机上。 该项目的目标是将主机上接收到的数据包转发到docker集装箱,以便集装箱function利用这些数据包并转发给其他链接的集装箱。

例如,考虑有2个容器(容器1和容器2)运行一些任意的function。 必须达到以下要求:

Host(Windows 10)----->Container 1------->Container 2------->Host 

其中——>表示数据包转发(在容器function工作之后)

到目前为止,在刚收到数据包的主机上使用Wireshark接收数据包,并显示数据包的详细信息。 这些收到的数据包如何从主机,从一个容器转发到Docker容器? 可以使用Scapy(主机到容器)来完成吗? 我知道容器networking可以用来连接不同的容器,但是数据包可以在它们之间转发吗?

另外,在上述任何情况下,在主机和容器内部都可以使用python或java socket编程吗? 像libpcap这样的库可以用于这个目的吗?

这听起来像你需要创build一个网桥,以便您的docker集装箱出现在主机的networking上。

运行docker时可以使用-p参数。 例:

 docker run -p 127.0.0.1:80:8080 ubuntu 

更多细节: https : //docs.docker.com/engine/userguide/networking/default_network/binding/

运行容器时,默认情况下会使用bridgenetworking。

如果您希望容器使用主机接口,则可以使用hostnetworking启动容器。

 docker run network=host ... 

https://docs.docker.com/engine/userguide/networking/