2014-12-30 28 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

相关问题