2017-04-10 53 views
0

目前,我正在開發一個項目,我們正在使用ROS,Bebop_autonomy和OpenCV自主控制Parrot Bebop2。我們在工作區中使用的機器運行Ubuntu 14.04.5,並且我可以使用映像啓動容器。用於Windows主機網絡堆棧的Docker使用

我使用「docker run -it --network = host username/image」創建的。配置完容器內的所有內容後,bebop_autonomy節點會很好,並且可以在Bebop的網絡上完美地通信。當您在容器和主機中運行ip addr時,它們顯示的地址與您預期的相同。

但是,當試圖在我的Windows機器上運行它時,ip與主機不同,並且當我嘗試與Bebop進行通信時,我從未收到任何ACK數據包。我假設這是因爲數據包沒有被髮送到正確的IP,或者他們沒有被正確轉發。

我已經嘗試創建自己的網絡,並手動設置「泊塢網網絡創建」的IP並將它作爲參數傳遞給運行命令,但我似乎無法讓它工作。我也嘗試在Hyper-V管理器中創建不同的交換機,但是過去幾天我沒有看到這些交換機幫助我弄清楚了這一點。

我已經掌握了Docker的工作原理,但是我看到的大多數參考資料都是關於已經運行linux的主機。如果我無法弄清楚這一點,我們首先繼續使用docker幾乎沒有用處。

有沒有什麼方法可以配置Docker for Windows以與Docker在提供--network = host時工作的相同方式工作?

回答

0

我最終通過在Hyper-V管理器中創建單獨的網絡,將網絡設置爲僅使用外部WiFi適配器,並使用該網絡運行容器來實現我的目標。但必須有更好的方式。

+0

你有沒有找到一個更好的解決方案,以在Windows上運行docker與network = host? – KinGBin

+0

不,我確定可能有辦法做到這一點,但我無法得到它。 – Mabecr

+0

你是如何設置容器來使用該網絡的? – dsaydon