2014-12-30 4 views
15

Używam wersji CoreOS stabilnej 494.5.0 przy użyciu Vagrant/VirtualBox i używam rubinu waniliowego: obraz dokowania 2.1.5. Próbuję użyć Pipework do połączenia kontenera Docker z lokalnym interfejsem fizycznym (w przeciwieństwie do używania --net=host podczas uruchamiania kontenera), dzięki czemu mogę sniffować ruch. Pipework tworzy [email protected] w kontenerze i poprawnie ustawia swój adres IP, ale połączenie kończy się w stanie UNKNOWN, a kiedy spróbuję podnieść link za pomocą ip link, otrzymam RTNETLINK answers: Operation not permitted.Dlaczego operacja RTNETLINK jest niedostępna podczas korzystania z Pipework z kontenerami Docker?

Jeśli to robi różnicę, muszę użyć ip link set dev eth1 up zamiast ip link set dev [email protected] up lub otrzymam Cannot find device "[email protected]".

Jakieś pomysły, co robię źle?

Odpowiedz

24

Kontenery dokowane nie mają pełnych uprawnień domyślnie. Spróbuj dodać ten dowodzić docker run:

--cap-add=NET_ADMIN 

List of capabilities

+0

Dzięki! To naprawiło problem związany z operacją niezwiązaną! Nadal nie mogę powąchać ruchu z poziomu kontenera na lokalnym interfejsie, z którego korzystam Pipework, ale jest to dla innego pytania SO. ;) – Bryan

+2

Uwaga: jeśli używasz 'docker-compose', użyj' cap_add' klucz dla danego kontenera z 'NET_ADMIN' jako wartością (musi to być tablica, czyli' - NET_ADMIN' w następnym wierszu) – petrkotek

Powiązane problemy