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

在Jenkins Docker容器内运行Docker遇启动问题求助

解决方案

方法一:挂载宿主机Docker套接字(推荐)

这是最常用且稳定的方案,无需在Jenkins容器内启动Docker守护进程,直接复用宿主机的Docker环境:

  • 停止当前Jenkins容器:docker stop <jenkins-container-name>
  • 若需要,删除旧容器:docker rm <jenkins-container-name>
  • 重新启动Jenkins容器,挂载宿主机的Docker套接字和Docker命令:
    docker run -d \
      --name jenkins \
      -p 8080:8080 \
      -p 50000:50000 \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v /usr/bin/docker:/usr/bin/docker \
      -v jenkins_home:/var/jenkins_home \
      jenkins/jenkins:lts
    
  • 进入容器验证:docker exec -it jenkins bash,直接执行docker ps,即可查看宿主机的容器列表,说明Docker命令已正常可用。

方法二:在容器内启动Docker守护进程(不推荐,仅作参考)

如果必须在容器内运行Docker守护进程,需要赋予容器特权并手动启动:

  • 启动容器时添加--privileged参数(赋予容器宿主机级别的权限):
    docker run -d \
      --name jenkins \
      --privileged \
      -p 8080:8080 \
      -p 50000:50000 \
      -v jenkins_home:/var/jenkins_home \
      jenkins/jenkins:lts
    
  • 进入容器后,手动启动Docker守护进程:
    dockerd &
    
  • 等待几秒后,执行docker ps验证是否正常运行。

问题原因说明

  • 容器默认的PID 1进程是Jenkins,而非systemd,因此systemctl命令无法正常工作,这就是你遇到System has not been booted with systemd as init system错误的核心原因。
  • service docker start依赖完整的init系统管理进程,容器内没有这套环境,所以启动Docker服务会失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:02