最近在做一个产品docker化的过程中,出现了这两个问题。
一个是因为权限不足,所以不能在docker container中调用iptables命令。第二个是在调用systemctl启停services的时候出现了Failed to get D-Bus connection: Operation not permitted的错误。
原因分析
解决办法
对于iptables权限问题,在启动container时加入–cap-add=NET_ADMIN的参数,或者直接–privileged。
对于systemctl的问题,研究后推荐使用Guido Draheim写的docker-systemctl-replacement这个python的脚本。在DockerFile中直接下载使用。
另外还发现,使用centOS的container没有service这个命令,解决办法是yum install initscripts
(yum whatprovides service)
