You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04容器中systemctl命令无法使用的问题咨询

为什么Ubuntu 22.04 Docker容器里找不到systemctl?
  • 官方镜像做了轻量化裁剪:Ubuntu的官方Docker镜像为缩小体积、适配容器单进程运行场景,默认没有预装systemd套件(包括systemctl工具)。完整的Ubuntu服务器/桌面系统会默认包含这些组件,但容器镜像只保留了最基础的系统环境。

  • 容器默认未以systemd作为初始化进程:就算手动安装了systemd,普通方式启动的容器里,PID 1是bash而非systemd。systemd必须作为PID 1运行才能正常初始化服务管理环境,否则无法正常工作,systemctl也没法调用它。

解决方法

  1. 临时安装systemctl(仅测试用)
    在容器内执行以下命令安装组件:

    apt update && apt install -y systemd
    

    注意:此时直接运行systemctl仍会报错,因为systemd不是PID 1。

  2. 启动支持systemd的容器
    如果需要完整的systemd环境,启动容器时需添加特权参数并挂载cgroup目录,指定systemd为启动进程:

    docker run -it --name systemd-tutorial --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro ubuntu /sbin/init
    

    进入容器后即可正常使用systemctl命令。

内容的提问来源于stack exchange,提问作者WorldNeedsRefactoring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:55:26