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

微软托管Ubuntu构建代理集成测试调用Docker Rest Api失败咨询

问题结论

微软托管的Ubuntu版本构建代理默认不开放基于TCP端口的Docker REST API,仅通过Unix套接字暴露Docker服务接口,这是你调用超时的核心原因。

托管代理内的Docker引擎默认仅监听unix:///var/run/docker.sock套接字路径,未开启2375(非加密)、2376(加密)端口的TCP监听,所有指向TCP端口的Docker API请求自然会触发超时异常。你本地自建代理可以正常运行,是因为本地Docker环境主动开启了TCP端口监听的配置。

解决方案
  • 方案1(推荐):调整Docker.DotNet的连接配置,指定Unix套接字地址进行通信
    示例代码:

    var dockerConfig = new DockerClientConfiguration(new Uri("unix:///var/run/docker.sock"));
    using var dockerClient = dockerConfig.CreateClient();
    

    该方案无需修改托管代理的系统配置,兼容性最好,不会因为代理环境更新出现失效问题。

  • 方案2(按需选择):流水线运行前置步骤主动开启Docker TCP监听
    你可以在集成测试运行前执行以下命令修改Docker配置并重启服务:

    # 修改daemon配置开启本地TCP监听
    sudo echo '{"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]}' | sudo tee /etc/docker/daemon.json
    # 重启Docker服务
    sudo systemctl restart docker
    # 等待服务启动完成
    sleep 10
    

    执行完成后即可通过http://127.0.0.1:2375调用Docker REST API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:06:01