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