2014-12-30 15 views
15

Sto eseguendo CoreOS stable 494.5.0 usando Vagrant/VirtualBox e sto eseguendo il vanilla ruby: 2.1.5 Immagine Docker. Sto cercando di utilizzare Pipework per connettere il contenitore Docker a un'interfaccia fisica locale (invece di usare --net=host quando si esegue il contenitore) in modo da poter intercettare il traffico. La tubatura crea [email protected] nel contenitore e imposta il suo indirizzo IP correttamente, ma il collegamento finisce nello stato UNKNOWN e quando provo a portare il collegamento usando ip link ottengo RTNETLINK answers: Operation not permitted.Perché si ottiene un'operazione RTNETLINK non consentita quando si utilizzano i tubi con i contenitori Docker?

Se fa la differenza, devo usare ip link set dev eth1 up invece di ip link set dev [email protected] up oppure ottengo Cannot find device "[email protected]".

Qualche idea su cosa sto facendo male?

risposta

24

I contenitori Docker non dispongono di privilegi completi per impostazione predefinita. Provate ad aggiungere questo al comando docker run:

--cap-add=NET_ADMIN 

List of capabilities

+0

Grazie! Questo ha risolto il problema dell'operazione non consentita! Non riesco ancora ad intercettare il traffico dall'interno del contenitore sull'interfaccia locale che sto usando Pipework per il collegamento, ma questo è per un'altra domanda SO. ;) – Bryan

+2

Nota: se stai usando 'docker-compose', usa la chiave' cap_add' per il contenitore dato con 'NET_ADMIN' come valore (deve essere una matrice, ad esempio' - NET_ADMIN' nella riga successiva) – petrkotek

Problemi correlati