排障集錦:九九八十一難之第十八難!-----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

相關文章
相關標籤/搜索