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

Gitlab CI中如何将/var/run/docker.sock绑定到tcp://docker:2375?

解决方法:将UNIX套接字映射到Docker TCP端点

你需要用socat创建一个UNIX监听套接字,把所有请求转发到Docker的TCP端点tcp://docker:2375,同时确保套接字权限符合要求,让twistcli能正常访问。

正确操作步骤

  1. 清理可能存在的旧套接字,避免冲突:
rm -f /var/run/docker.sock
  1. 启动socat做转发并后台运行:
socat UNIX-LISTEN:/var/run/docker.sock,fork,mode=666 TCP:docker:2375 &
  1. 可选:验证转发是否正常,能返回Docker版本信息说明成功:
curl --unix-socket /var/run/docker.sock http://localhost/version
  1. 运行twistcli:
./twistcli sandbox image_to_scan

之前尝试失败的原因

  • TEST1:UNIX套接字是文件系统对象,软链接无法直接指向网络TCP地址,这种方式从原理上就不成立。
  • TEST2:转发方向搞反了,应该是监听UNIX套接字并将请求转发到TCP端点,而非反过来。
  • TEST3:缺少权限设置(mode=666)导致twistcli无法访问套接字,同时部分环境下socat需要用TCP:格式而非tcp-connect:。

Gitlab CI集成示例

将上述步骤加入CI脚本,确保socat已安装:

services:
  - docker:19-dind
variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
script:
  - apt-get update && apt-get install -y socat
  - rm -f /var/run/docker.sock
  - socat UNIX-LISTEN:/var/run/docker.sock,fork,mode=666 TCP:docker:2375 &
  - ./twistcli sandbox image_to_scan

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:46:33