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

Bitbucket Pipelines中Docker run连接Docker daemon失败求助

解决Bitbucket Pipeline中docker-bench-security连接Docker守护进程失败的问题

以下是几个可行的排查和修复步骤:

1. 先验证Docker daemon的可访问性

在script步骤开头加入docker ps命令,确认Pipeline环境里的Docker服务是否正常运行:

script:
  - docker ps  # 验证Docker daemon连接
  - docker run -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST -v /var/run/docker.sock:/var/run/docker.sock --label docker_bench_security docker/docker-bench-security -e check_1.*

如果这一步就报错,说明Bitbucket的Docker服务未正常启动,需检查Pipeline是否使用了支持Docker的runner;如果能正常输出容器列表,问题则出在docker-bench-security的启动命令上。

2. 修复容器内的权限问题

Bitbucket Pipeline中/var/run/docker.sock的权限通常为root:root,而docker-bench-security容器默认用非root用户运行,导致无法访问sock文件。解决方法是在run命令中添加--user root参数:

docker run --user root -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST -v /var/run/docker.sock:/var/run/docker.sock docker/docker-bench-security -e check_1.*

3. 移除未配置的环境变量(可选)

如果你的Pipeline没有设置DOCKER_CONTENT_TRUST变量,这个空值可能干扰容器运行,可暂时移除该参数:

docker run --user root -v /var/run/docker.sock:/var/run/docker.sock docker/docker-bench-security -e check_1.*

最终修改后的完整配置示例

step:
  name: Docker Bench Security
  services:
    - docker
  caches:
    - docker
  script:
    - docker ps
    - docker run --user root -v /var/run/docker.sock:/var/run/docker.sock docker/docker-bench-security -e check_1.*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:48:15