VM中本地运行的非容器版Jenkins提示docker not found如何配置权限
Jenkins调用Docker权限问题解决方案
核心原理
Docker默认将套接字文件/var/run/docker.sock的读写权限开放给docker用户组,组内用户无需添加sudo即可执行Docker命令。你遇到的报错同时包含两类可能:一是Jenkins运行用户无Docker调用权限,二是Jenkins运行环境的PATH未包含Docker执行路径。
操作步骤
- 第一步:将Jenkins运行用户加入docker用户组
执行命令:sudo usermod -aG docker jenkins
注:默认本地安装的Jenkins服务运行用户为jenkins,如果你修改过运行用户,替换成你实际使用的用户即可。 - 第二步:重启Jenkins服务让用户组配置生效
执行命令:sudo systemctl restart jenkins
若你使用SysVinit系统,替换为:sudo service jenkins restart - 第三步:验证配置是否生效
切换到jenkins用户执行Docker测试命令:sudo su - jenkins -c "docker info"
若正常输出Docker系统信息,说明权限配置完成。
异常补充(仍提示docker: not found时处理)
如果权限配置完成后依然报命令找不到错误,是因为Jenkins运行环境的PATH变量未包含Docker的执行路径:
- 先获取Docker的绝对路径:
which docker,通常返回结果为/usr/bin/docker - 两种修复方式二选一:
- 在Jenkins全局配置中新增环境变量,把Docker所在路径追加到PATH变量中
- 直接在Pipeline脚本中使用Docker的绝对路径执行命令,比如
/usr/bin/docker pull python:3.8.5
内容的提问来源于stack exchange,提问作者max.syntax
相关产品推荐
相关产品推荐

