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

如何让Docker容器内的Jenkins在宿主机上创建并运行容器?

在Docker容器中部署Jenkins并让其创建的容器运行在宿主机的最优方案

核心方案:挂载宿主机Docker套接字与客户端

这是实现需求最直接、轻量的方案,核心思路是让Jenkins容器直接使用宿主机的Docker守护进程,从而使Jenkins创建的容器由宿主机Docker管理,而非Jenkins容器内部。

原理

Docker采用C/S架构,宿主机的Docker守护进程默认监听/var/run/docker.sock Unix套接字。将该套接字挂载到Jenkins容器内后,容器内的Docker客户端可直接与宿主机的Docker守护进程通信,所有容器创建、管理操作都将在宿主机层面执行。

具体操作步骤

  1. 启动Jenkins容器并挂载必要资源
    执行以下命令启动Jenkins,挂载宿主机的Docker套接字、处理权限问题(若容器内未内置Docker客户端,可额外挂载宿主机的Docker二进制文件):

    docker run -d \
      --name jenkins \
      -p 8080:8080 \
      -p 50000:50000 \
      -v jenkins_home:/var/jenkins_home \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v /usr/bin/docker:/usr/bin/docker \
      --group-add $(getent group docker | cut -d: -f3) \
      jenkins/jenkins:lts
    

    参数说明:

    • -v /var/run/docker.sock:/var/run/docker.sock:挂载宿主机Docker套接字,让容器内可访问宿主机Docker守护进程
    • -v /usr/bin/docker:/usr/bin/docker:挂载宿主机Docker客户端二进制文件,省去容器内安装步骤
    • --group-add $(getent group docker | cut -d: -f3):将Jenkins容器内的jenkins用户加入宿主机的docker用户组,解决套接字访问权限问题
  2. 验证配置有效性
    进入Jenkins容器执行docker ps命令,若能列出宿主机上的所有容器,则说明配置成功:

    docker exec -it jenkins docker ps
    
  3. 可选:自定义Jenkins镜像内置Docker客户端
    若宿主机Docker客户端版本与容器内环境兼容性不佳,可自定义Jenkins镜像,预先安装对应版本的Docker客户端,无需挂载宿主机的/usr/bin/docker:

    FROM jenkins/jenkins:lts
    USER root
    # 安装Docker客户端,可根据需求指定版本
    RUN apt-get update && apt-get install -y docker.io
    USER jenkins
    

    构建镜像后,使用自定义镜像启动Jenkins,仅需挂载docker.sock和配置用户组即可。

不推荐的替代方案说明

  • Docker-in-Docker(DinD):该方案会在Jenkins容器内部启动独立的Docker守护进程,创建的容器属于内部守护进程管理,完全不符合需求,且存在资源占用高、隔离性差、安全风险等问题。
  • 暴露Docker API到网络:通过在宿主机暴露Docker API端口,让Jenkins容器通过网络调用,此方式存在严重安全隐患,未授权第三方可能通过API控制宿主机Docker,因此不建议使用。

注意事项

  • 安全风险:挂载docker.sock相当于赋予Jenkins容器宿主机的root权限,需严格管控Jenkins的访问权限,避免未授权用户执行危险构建操作。
  • 版本兼容性:确保Jenkins容器内的Docker客户端版本与宿主机Docker守护进程版本差异在官方兼容范围内,避免出现命令报错或功能异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:45:43