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

时间:2017-06-28 05:02:48

标签: python sockets networking docker

我正在开发一个使用Docker容器的项目。 Docker安装在Windows 10主机上。该项目的目的是将主机上接收的数据包转发到docker容器,以便容器函数利用这些数据包,然后将它们转发到其他链接容器。

例如,考虑有2个容器(容器1和容器2)运行一些任意功能。必须实现以下目标:

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

其中------>表示数据包转发(在容器函数处理它们之后)

截至目前,在主机中使用Wireshark接收数据包,该主机仅接收数据包并显示数据包详细信息。这些接收的数据包如何从主机转发到Docker容器,从一个容器转发到另一个容器?可以使用Scapy(主机到容器)来完成吗?我知道容器网络可以用来链接不同的容器,但是数据包可以在它们之间转发吗?

此外,在上述任何上下文中,主机和容器内部是否可以使用python或java套接字编程?像libpcap这样的库可以用于此目的吗?

3 个答案:

答案 0 :(得分:0)

听起来您需要创建一个网桥,以便您的docker容器出现在主机的网络上。

答案 1 :(得分:0)

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

docker run -p 127.0.0.1:80:8080 ubuntu

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

答案 2 :(得分:0)

运行容器时,默认情况下会使用bridge网络。

如果您希望容器使用hosts接口,则可以使用host网络启动容器。

docker run network=host ...

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