java.lang.IllegalStateException:无法连接到 localhost:49167 的 Ryuk

use*_*400 29 docker testcontainers

我正在使用测试容器库来启动容器。它工作了一段时间,但目前遇到了这个

java.lang.IllegalStateException: Could not connect to Ryuk at localhost:49167

    at org.testcontainers.utility.ResourceReaper.start(ResourceReaper.java:201)
    at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:205)
    at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14)
    at org.testcontainers.LazyDockerClient.authConfig(LazyDockerClient.java:12)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:310)
Run Code Online (Sandbox Code Playgroud)

我查看了资源收割机代码,它似乎在这里失败了

public synchronized void performCleanup() {
    this.registeredContainers.forEach(this::stopContainer);
    this.registeredNetworks.forEach(this::removeNetwork); //FAILS HERE
    this.registeredImages.forEach(this::removeImage);
}
Run Code Online (Sandbox Code Playgroud)

小智 16

可能的Windows解决方案:

我尝试了这里提到的所有内容,但没有任何效果。

如果有人仍然面临这个问题,他们可以尝试一下......这对我有用。

这适用于 Windows:

  1. 以管理员模式打开 PowerShell。
  2. 跑步net stop winnat
  3. 跑步net start winnat

这样做解决了我的设置中的这个问题。希望这对某人有帮助。


Ola*_*ino 12

我可以通过将 testcontainers 更新到 1.16.0 版本来确认此问题已解决

testcontainers 1.15.3 面临同样的异常

Windows 10、Docker 桌面 4.0.0


小智 11

我遇到了同样的问题。相同的 Docker-for Mac 版本。

我的解决方案是在首选项中禁用“使用 gRPC FUSE 进行文件共享”:优先


KAD*_*KAD 10

对我来说,重新启动本地 docker 引擎解决了问题。

在带有 SystemD 的 Linux 上,它是这样完成的:

sudo service docker restart
Run Code Online (Sandbox Code Playgroud)