2017-04-10 36 views
1

我已經有一個在Linux主機上完全工作的Docker容器。現在我想讓它在Windows和Mac上工作  OS   X.此容器使用USB無線接口。在Linux中,它就像在Docker運行命令中使用--net=host一樣簡單,就這麼簡單。有了這個,我可以看到容器內的無線接口,並將--privileged我可以將它們更改爲監視模式。現在讓我們嘗試在Windows/Mac ...自定義boot2docker.iso以在容器上使用無線設備(Docker-toolbox)

我的調查使我選擇Docker-toolbox for Windows/Mac。在主機操作系統上似乎無法將USB設備與標準Docker進行映射。現在,使用VirtualBox「默認」機器,我安裝了VirtualBox擴展包並創建了將USB設備連接到容器的過濾器。現在我可以看到(最後!!!)使用lsusb命令將USB設備裝入容器中,這是個好消息......但不幸的是,我看不到它們是作爲iwconfig的無線接口。

我想這是因爲默認的boot2docker機器沒有這個驅動。所以,我的調查再次帶我進入下一步......

我試圖用無線驅動程序創建一個自定義boot2docker.iso。我在官方boot2docker GitHub page的Dockerfile中看到一個命令,我認爲是「搞砸了」我的計劃......命令是rm -rf ./*/kernel/net/wireless/*

看來它故意刪除它們。我試圖刪除該行並構建生成新ISO映像的映像。要創建一個自定義的boot2docker iso,就像下載(克隆)回購庫並安裝Docker一樣簡單,然後執行此docker build -t boot2docker . && docker run --rm boot2docker > boot2docker.iso。它會生成一個新的iso文件。

然後我試着在兩個系統(Windows和Mac)上重新創建基於這個新ISO映像的VirtualBox默認機器(覆蓋默認的iso,刪除機器並重新創建它),但失敗了。我無法在容器中看到無線接口爲「wlanx」。

哪個程序創建boot2docker ISO映像文件與無線驅動程序支持?我錯過了什麼嗎?有沒有人有我可以使用的ISO映像?

編輯 我在Dockerfile上修改了很多東西。有一個帶有所有內核選項的kernel_config文件。顯然,目標是生成一個iso,並設置所有內核選項以支持無線操作...因此,我啓用了所有無線驅動程序(不包括模塊,我的意思是包括自動檢測),就像我可以(atheros,realtek,ralink,intel等)......所有選項都啓用了內核。我也啓用了「CONFIG_USB_MON = y」標誌,以便能夠使用監視器模式。

除了我正在研究和學習的所有內核選項......當然還必須將驅動程序添加到iso中。爲此,我正在修改Dockerfile的另一部分。它使用tinycore,所有可用的軟件包位於:http://distro.ibiblio.org/tinycorelinux/7.x/x86_64/tcz/,我安裝了所有無線相關軟件包,包括最終驅動程序的固件包。

我在正確的方向,因爲現在我可以看到容器內的無線接口...即使我把它們中的一個(Ralink Alfa)置於監視器模式下,但不幸的是,在容器內使用airodump進行掃描後,數據包。我錯過了一些東西...:/

任何幫助表示讚賞。

EDIT2我分叉boot2docker repository。我推動了對Dockerfile和kernel_config文件的更改。如果有人想嘗試一些東西是值得歡迎的......正如我所說的,在這一點上,我們能夠看到容器內部的無線接口,並將它們置於監視模式下......但沒有捕獲數據包。與驅動程序相關的東西是錯誤的,我猜內核的東西現在好了......我會繼續嘗試使用不同的芯片組。

回答

1

我還沒來得及嘗試一下,所以請帶上一點鹽,但this guide推薦碼頭機,這對我來說很合理。

+0

感謝您的鏈接。我相當接近實現它。我正在修改Dockerfile和kernel_options文件,並在一個無限循環的嘗試和錯誤中編譯它......但是我非常接近!我現在可以看到容器內的wlan0適配器...現在我正在與它戰鬥,把它放在監視器模式...如果最終我實現了它,我會在這裏把關於如何做到這一點的整個解釋。 – OscarAkaElvis

+0

哈哈令人驚歎:)請保持我張貼! –

+0

哦,我的上帝......我可以把卡放在監視器中,但在掃描時不顯示數據包......我錯過了一些東西! ...非常接近... – OscarAkaElvis

2

好的,所以我可能需要做更多的研究才能完全掌握您的問題。但是根據我的理解,您基本上正在嘗試創建綁定到自定義網絡接口(您的USB無線接口)的容器網絡?如果是這樣,我們有關於如何創建綁定到特定網絡接口here的容器網絡的文檔。你有沒有嘗試過這種方法?基本上,您應該能夠使用選項-o com.docker.network.windowsshim.interface=<Interface>docker network create命令指定您的新網絡應使用哪個主機接口。然後,您可以將容器附加到綁定到正確界面的網絡,然後您應該具有連接性。

+0

我認爲你建議如果使用docker with hyper-v。我錯了嗎?我想要做的是使用Virtualbox虛擬機的Docker工具箱,因爲這樣它也可以用於OSX環境。無論如何感謝您的回答,非常有趣,當然我也會檢查。 – OscarAkaElvis

相關問題