Docker for Windows主机网络堆栈使用

时间:2017-04-10 05:30:04

标签: docker ros

目前,我正在开展一个项目,我们正在使用ROS,Bebop_autonomy和OpenCV来自主控制Parrot Bebop2。我们在工作区中使用的机器正在运行Ubuntu 14.04.5,我可以使用图像启动容器

我创建了" docker run -it --network = host username / image"。配置容器内的所有内容后,bebop_autonomy节点就可以了,并且可以完美地在Bebop网络上进行通信。当您在容器和主机中运行ip addr时,它们会显示相同的地址,正如您所期望的那样。

但是,当我尝试在我的Windows机器上运行它时,ip与主机不同,当我尝试与Bebop通信时,我从未收到任何ACK数据包。我假设这是因为数据包没有被发送到正确的IP,或者它们没有被正确转发。

我尝试创建自己的网络并使用" docker network create"手动设置ip。并将其作为参数传递给run命令,但我似乎无法让它工作。我也曾尝试在Hyper-V管理器中创建不同的交换机,但过去几天我没有读过任何内容,这帮助我解决了这个问题。

我已经很好地掌握了docker的工作原理,但我看到的大多数参考资料都是讨论已经运行linux的主机。如果我无法解决这个问题,那么我们首先要继续使用码头工具几乎没用。

在提供--network = host时,有没有办法让Docker for Windows以与Docker在Linux上运行相同的方式工作?

1 个答案:

答案 0 :(得分:0)

我最终通过在Hyper-V管理器中创建一个单独的网络来实现我想要的,将该网络设置为仅使用外部wifi适配器,并使用该网络运行容器。必须有更好的方法。