前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >排障集锦:九九八十一难之第十八难!-----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 operat

作者头像
不吃小白菜
发布2020-09-22 11:23:37
发布2020-09-22 11:23:37
24.4K00
代码可运行
举报
运行总次数:0
代码可运行

报错现象如下

代码语言:javascript
代码运行次数:0
复制
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/init

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

解决方案二

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

原因详解

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

同时 只能使用 docker exec -it systemctl5 /bin/bash 因为 exec 可以让我们执行被覆盖掉的默认命令 /bin/bash 同时 -it 也是必须的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错现象如下
  • 解决方案一
  • 解决方案二
  • 原因详解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档