以 firewalld 为例.
1. 问题
安装完 firewall, 发现 systemctl start firewalld 报错.
yum install firewalld
报错:
System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down
2. 解决
运行容器时, 添加两个参数:
--privileged=true
/usr/sbin/init
docker run -d -it --privileged=true --name centos centos /usr/sbin/init
由于运行是添加了
/usr/sbin/init
参数, 进入容器时用/bin/bash
即可.
docker exec -it centos /bin/bash
此时再运行
systemctl start firewalld
便可以成功.