Docker 中 systemctl 命令不好使 (以 firewalld 为例)

Docker 中 systemctl 命令不好使

以 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 便可以成功.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章