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

如何在Docker容器中使用systemctl命令?修改配置后未生效求助

在Docker容器内使用systemctl的正确方法

直接手动修改容器的config.v2.json文件没用,Docker不会读取你事后修改的这个配置,甚至可能导致容器损坏,别这么干。下面是两种靠谱的实现方式:

  • 创建新容器时直接配置
    要让systemctl正常工作,容器需要获得足够权限,并且挂载systemd必需的cgroup文件系统,同时指定/sbin/init作为启动进程。执行以下命令创建容器:

    docker run -d --privileged --name my-systemd-container -v /sys/fs/cgroup:/sys/fs/cgroup:ro ubuntu:latest /sbin/init
    

    之后进入容器就能使用systemctl了:

    docker exec -it my-systemd-container bash
    

    进去后试试systemctl status,就能看到systemd正常运行了。

  • 给现有镜像安装systemd(如果镜像默认没有)
    有些基础镜像比如Alpine、精简版Ubuntu默认不带systemd,需要先安装:
    以Ubuntu/Debian为例,进入容器后执行:

    apt update && apt install -y systemd
    

    安装完成后,再按照上面的方式重新创建容器即可。

注意:不要同时使用Docker的--init参数和/sbin/init,两者会冲突,导致systemd无法正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:20:44