Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Windows主机网络堆栈的Docker_Docker_Ros - Fatal编程技术网

用于Windows主机网络堆栈的Docker

用于Windows主机网络堆栈的Docker,docker,ros,Docker,Ros,目前,我正在进行一个项目,我们使用ROS、Bebop_autonomy和OpenCV来自动控制鹦鹉Bebop2。我们在工作区中使用的机器正在运行Ubuntu 14.04.5,我可以使用图像启动一个容器 我创建了“docker run-it--network=host username/image”。配置完容器内的所有内容后,bebop_自治节点就可以了,并且可以在bebop的网络上完美地通信。当您在容器和主机中运行ip addr时,它们显示的地址与您预期的相同 但是,当尝试在我的Windows计

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

我创建了“docker run-it--network=host username/image”。配置完容器内的所有内容后,bebop_自治节点就可以了,并且可以在bebop的网络上完美地通信。当您在容器和主机中运行ip addr时,它们显示的地址与您预期的相同

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

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

我对docker的工作原理有很好的了解,但我看到的大多数参考资料都是关于已经运行linux的主机的。如果我不能弄明白这一点,那么我们首先继续使用docker几乎是没有用的


当Docker在Linux上提供--network=host时,有没有办法将Docker配置为Windows的工作方式与Docker在Linux上的工作方式相同

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

您找到了在windows上运行network=host的docker更好的解决方案吗?没有。我肯定有办法,但我无法找到。您是如何设置容器以使用该网络的?@dsaydon由于您已将VM设置为使用另一个适配器,因此自动启动的容器会使用它。至少,我相信事情就是这样。也许有更好的方法,但这是我让它在Windows上工作的唯一方法。