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

Posted

技术标签:

【中文标题】java.lang.IllegalStateException:无法在 localhost:49167 连接到 Ryuk【英文标题】:java.lang.IllegalStateException: Could not connect to Ryuk at localhost:49167 【发布时间】:2021-07-27 18:53:22 【问题描述】:

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

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)

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

public synchronized void performCleanup() 
    this.registeredContainers.forEach(this::stopContainer);
    this.registeredNetworks.forEach(this::removeNetwork); //FAILS HERE
    this.registeredImages.forEach(this::removeImage);

【问题讨论】:

您使用的是哪个 Testcontainers 版本,能否为您的失败测试添加代码? @rieckpil 1.15.2 和 Ubuntu 20.02 当我重新启动 docker 时,问题就消失了,但那是我盲目的射击。我可以知道是什么导致了这个问题吗?因为这个问题持续了一段时间 如果无法再次重现该问题,很难说是什么问题导致了此问题。你的 Docker 版本是多少? @user1870400 你能解决这个问题吗? 【参考方案1】:

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

在 testcontainers 1.15.3 中遇到了同样的异常

Windows 10、Docker 桌面 4.0.0

【讨论】:

【参考方案2】:

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

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

【讨论】:

救了我的培根!谢谢【参考方案3】:

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

【讨论】:

以上是关于java.lang.IllegalStateException:无法在 localhost:49167 连接到 Ryuk的主要内容,如果未能解决你的问题,请参考以下文章