Container · 2022年5月20日

IPtables and Systemctl in Docker Container

最近在做一个产品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)