排障集锦:九九八十一难之第十八难!-----System has not been booted with systemd as init system (PID 1). Can‘t operat

报错现象以下

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

解决方案一

检查启动命令 加参数 -itd --privileged 若是dockerfile中CMD中没有执行 要在后面命令加/usr/sbin/initdocker

dockerun --privileged -itd --name systemctl3 -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemctl:testbash

解决方案二

重启一个docker在后台运行 执行上面的命令
dockerun --privileged -itd --name systemctl3 -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemctl:test
spa

缘由详解

–privateged 使container内的root拥有真正的root权限,不进行降权处理。不然,容器内的用户只是外部的一个普通用户,普通用户还想访问内核?让systemctl管理系统? 并且默认状况下,在第一步执行的是 /bin/bash 因此咱们使用了 /usr/sbin/init覆盖/bin/bashcode

同时 只能使用 docker exec -it systemctl5 /bin/bash 由于 exec 能够让咱们执行被覆盖掉的默认命令 /bin/bash 同时 -it 也是必须的。dockerfile

相关文章
相关标签/搜索