Mac M芯片环境下Testcontainers for C#无法连接Docker TCP端点求助
解决Testcontainers for C#连接远程Docker(M系列Mac)的端点检测问题
先确认网络连通性
- 在Windows上打开PowerShell,执行:
如果显示Test-NetConnection 10.211.55.2 -Port 2375TcpTestSucceeded: True,说明网络通;如果失败:- 检查Mac的防火墙设置,允许2375端口的入站TCP连接
- 确认
10.211.55.2是Mac当前的局域网IP(Mac上执行ipconfig getifaddr en0查看)
修正Testcontainers配置
你的Docker daemon使用无加密的HTTP模式,Testcontainers默认会尝试TLS验证,需要显式关闭:
- 找到Windows上的
.testcontainers.properties文件(路径:C:\Users\<你的用户名>\.testcontainers.properties),修改内容为:docker.host=tcp://10.211.55.2:2375 docker.tls.verify=false - 或者在Windows系统环境变量中添加:
DOCKER_HOST=tcp://10.211.55.2:2375DOCKER_TLS_VERIFY=0
验证Docker CLI连通性
在Windows上执行以下命令,确认能正常连接Mac的Docker:
docker -H tcp://10.211.55.2:2375 info
如果能返回你提供的Docker info内容,说明Docker层面连接正常,此时重启IDE或重新运行Testcontainers代码即可。
代码层面强制配置(可选测试用)
如果配置文件或环境变量没生效,可以在代码中直接指定配置:
using DotNet.Testcontainers.Builders; using DotNet.Testcontainers.Configurations; var testcontainersConfig = new TestcontainersConfiguration { Endpoint = new Uri("tcp://10.211.55.2:2375"), TLS = false }; var container = new ContainerBuilder() .WithConfiguration(testcontainersConfig) .WithImage("mcr.microsoft.com/mssql/server:2022-latest") // 替换为你需要的镜像 .Build(); await container.StartAsync();
内容的提问来源于stack exchange,提问作者PsyChonek
相关产品推荐
相关产品推荐

