如何配置SpringBoot TestContainers以使用containerd替代Docker?
Docker Desktop启用containerd后TestContainers无法连接的解决方法
启用Docker Desktop的containerd后,docker daemon会被禁用,导致TestContainers运行测试时出现以下错误:
Error during callback
com.github.dockerjava.api.exception.DockerException: Status 502: Bad response from Docker engine
解决方案步骤:
定位Docker Desktop中containerd的套接字路径
- macOS系统:
/var/run/docker/containerd/containerd.sock - Windows(WSL2环境):WSL2内部路径为
/run/docker/containerd/containerd.sock,Windows原生环境则用//./pipe/docker_containerd
- macOS系统:
配置TestContainers连接containerd
编辑用户目录下的~/.testcontainers.properties文件,添加对应配置:# macOS或WSL2内部环境用这组配置 docker.client.strategy=org.testcontainers.dockerclient.ContainerdDockerClientProviderStrategy docker.host=unix:///var/run/docker/containerd/containerd.sock # Windows原生环境替换为这行 # docker.host=npipe:////./pipe/docker_containerd验证配置
重新运行TestContainers测试,确认错误消失。若仍有问题,检查Docker Desktop设置的「Features in Development」中,是否已勾选「Use containerd for pulling and storing images」确保containerd处于启用状态。
内容的提问来源于stack exchange,提问作者Jolley71717
相关产品推荐
相关产品推荐

