Docker部署的Jenkins打包后端项目运行报错:no DOCKER_HOST environment variable, no read/writable '/var/run/docker.sock' or '//./pipe/docker_engine' and no external provider like Docker machine(容器内却能执行成功)

一:错误信息

报错信息如下:

image

 根本原因是 Jenkins容器未正确挂载宿主机的Docker守护进程,导致插件无法通过默认路径(/var/run/docker.sock)与Docker通信 或 权限问题。

二:解决方案​一

1、挂载Docker Socket 并以 root 用户运行 Jenkins 容器

​适用场景​:Jenkins容器需要直接调用宿主机的Docker引擎(DinD模式)。
操作步骤​:

1、重新启动Jenkins容器​,挂载宿主机Docker套接字和二进制

文件:

docker run -d \
  --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v /var/run/docker.sock:/var/run/docker.sock \  # 挂载Docker套接字
  -v $(which docker):/usr/bin/docker \           # 挂载Docker命令行工具
  -v jenkins_home:/var/jenkins_home \
  -u root \                                      # 以root用户运行(避免权限问题)注意​:长期使用 root 用户存在安全风险,建议仅用于调试。
  jenkins/jenkins:lts

关键点​-u root 确保容器内用户有权限访问docker.sock(生产环境建议改用jenkins用户+组权限配置)。

备注:如果容器已经添加了很多插件不想删除重新启动,则修改权限或添加用户组,如下方案

三:解决方案二

验证权限​(可选): 进入容器检查docker.sock的权限:

docker exec -it 容器名称 ls -l /var/run/docker.sock

 查询如下:

image

可以看出关键问题是权限不足导致

 

 权限不足​s--------T 表示只有文件所有者(jenkins)有读写权限,但 jenkins 用户可能未正确加入 docker 组(GID 994)。

T标志位​T(粘滞位)通常不影响访问,但结合权限限制会加剧问题。

操作如下:

1. 修改 docker.sock 权限(临时方案)​

# 在宿主机执行(非容器内):
sudo chmod 666 /var/run/docker.sock  # 开放全局读写权限(不安全,仅调试用)

注意​:此方法会降低安全性,仅用于临时验证问题。验证后需恢复权限并采用以下安全方案。

2、 将 jenkins 用户加入 docker 组(推荐)​

步骤 1:确认宿主机 docker 组信息​

# 在宿主机执行:
getent group docker

输出示例:

docker:x:994:user1,user2  # GID为994,当前成员为user1,user2

步骤 2:在 Jenkins 容器内同步 docker 组​

# 进入Jenkins容器:
docker exec -it jenkins3 /bin/bash
# 在容器内执行:
groupadd -g 994 docker           # 创建与宿主机同GID的docker组
usermod -aG docker jenkins       # 将jenkins用户加入docker组
exit
# 重启容器使配置生效:
docker restart jenkins3

步骤 3:验证权限​

docker exec -it jenkins3 ls -l /var/run/docker.sock

 

预期输出:

srw-rw----. 1 jenkins docker 0 Oct 23 11:23 /var/run/docker.sock

 

若成功,jenkins 用户应能正常访问 Docker。

--------------------------------------------------------------------------------------------------------------------------------------
再次尝试,打包成功。。。

image

 

posted @ 2025-10-23 14:19  攻城狮-tester  阅读(3)  评论(0)    收藏  举报