今天在 docker 容器里面启动 nagios 玩,启动的时候发现不能使用 systemctl 命令。
配置centos的docker容器时,在里面安装mysql数据库,以下为安装mysql的命令
yum -y install mariadb*
systemctl start mariadb.service # 运行到这条报错
systemctl enable mariadb.service
# 设置root有用户密码
mysql_secure_installation
当时我配置项目服务器,调用了systemctl 命令启动服务,报错。
原因及解决方式:
这个的原因是因为 dbus-daemon 没能启动。其实 systemctl 并不是不可以使用。将你的 CMD 或者 entrypoint 设置为 /usr/sbin/init 即可。会自动将 dbus 等服务启动起来。
然后就可以使用 systemctl 了。命令如下
# 在创建docker容器时添加--privileged
docker run --privileged -ti -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup centos /usr/sbin/init