我正在开发一个使用Docker容器的项目。 Docker安装在Windows 10主机上。该项目的目的是将主机上接收的数据包转发到docker容器,以便容器函数利用这些数据包,然后将它们转发到其他链接容器。
例如,考虑有2个容器(容器1和容器2)运行一些任意功能。必须实现以下目标:
Host(Windows 10)----->Container 1------->Container 2------->Host
其中------>表示数据包转发(在容器函数处理它们之后)
截至目前,在主机中使用Wireshark接收数据包,该主机仅接收数据包并显示数据包详细信息。这些接收的数据包如何从主机转发到Docker容器,从一个容器转发到另一个容器?可以使用Scapy(主机到容器)来完成吗?我知道容器网络可以用来链接不同的容器,但是数据包可以在它们之间转发吗?
此外,在上述任何上下文中,主机和容器内部是否可以使用python或java套接字编程?像libpcap这样的库可以用于此目的吗?
答案 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 ...