2014-12-30 30 views
15

我使用Vagrant/VirtualBox運行CoreOS stable 494.5.0,並運行vanilla ruby​​:2.1.5 Docker鏡像。我正在嘗試使用Pipework將Docker容器連接到本地物理接口(而不是在運行容器時使用--net=host),因此我可以嗅探流量。管道在容器中創建了[email protected]並正確設置了它的IP地址,但是鏈接以UNKNOWN狀態結束,並且當我嘗試使用ip link使鏈接達到時,我得到RTNETLINK answers: Operation not permitted爲什麼當使用Docker容器使用Pipework時,RTNETLINK操作不允許?

如果有差異,我必須使用ip link set dev eth1 up而不是ip link set dev [email protected] up否則我得到Cannot find device "[email protected]"

任何想法我做錯了什麼?

回答

24

默認情況下,Docker容器不具有完全權限。嘗試添加該到docker run命令:

--cap-add=NET_ADMIN 

List of capabilities

+0

謝謝!這解決了操作不允許的問題!我仍然無法從我使用Pipework鏈接到的本地界面上的容器中嗅探流量,但這是另一個SO問題。 ;) – Bryan

+2

注意:如果使用'docker-compose',對於給定容器使用'cap_add'鍵作爲值(必須是一個數組,即下一行的' - NET_ADMIN') – petrkotek

相關問題