Capacidades
Se você deseja ter iptables access em seus contêineres, é necessário ativar recursos específicos por meio da opção --cap-add=NET_ADMIN ao executar o contêiner inicialmente.
Exemplo
$ docker run --cap-add=NET_ADMIN -it ubuntu:16.04
Em seguida, no contêiner, eu configuro iptables & sudo :
# apt update -y
# apt-get install iptables sudo -y
Em seguida, dentro do contêiner, eu configurei um usuário, user1 , e o adicionei ao grupo sudo :
# adduser user1
# adduser user1 sudo
Em seguida, defina o usuário como user1 :
# su - user1
Verifique as permissões sudo user1' s:
$ sudo -l
[sudo] password for user1:
Matching Defaults entries for user1 on 1356bf8bd61a:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User user1 may run the following commands on 1356bf8bd61a:
(ALL : ALL) ALL
Verifique se eles podem acessar iptables via sudo :
$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination