Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决;Can';“得不到Docker图像”;当使用测试容器时?_Java_Spring Boot_Testcontainers - Fatal编程技术网

Java 如何解决;Can';“得不到Docker图像”;当使用测试容器时?

Java 如何解决;Can';“得不到Docker图像”;当使用测试容器时?,java,spring-boot,testcontainers,Java,Spring Boot,Testcontainers,我使用的是测试容器,到目前为止,它一直工作得很好。我最近更新了docker和IntelliJ,但我不知道这是否是以下问题的原因 以下是我使用的依赖项: testCompile 'org.testcontainers:testcontainers:1.12.3' testCompile 'org.testcontainers:oracle-xe:1.12.3' 这是stacktrace: 2020-10-12T13:13:06.709 WARN testcontainers-ryuk [rg.

我使用的是测试容器,到目前为止,它一直工作得很好。我最近更新了docker和IntelliJ,但我不知道这是否是以下问题的原因

以下是我使用的依赖项:

testCompile 'org.testcontainers:testcontainers:1.12.3'
testCompile 'org.testcontainers:oracle-xe:1.12.3'
这是stacktrace:

2020-10-12T13:13:06.709 WARN  testcontainers-ryuk [rg.testcontainers.utility.ResourceReaper]  - Can not connect to Ryuk at localhost:32778
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at org.testcontainers.utility.ResourceReaper.lambda$start$1(ResourceReaper.java:114)
    at java.lang.Thread.run(Thread.java:748)

java.lang.ExceptionInInitializerError
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    ...
Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=ryangoh/oracle_12c_r1_xe:latest)
    at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1153)
    at org.testcontainers.containers.GenericContainer.setDockerImageName(GenericContainer.java:1141)
    at org.testcontainers.containers.GenericContainer.<init>(GenericContainer.java:246)
    at org.testcontainers.containers.JdbcDatabaseContainer.<init>(JdbcDatabaseContainer.java:36)
    at org.testcontainers.containers.OracleContainer.<init>(OracleContainer.java:40)
    at com.vocalink.bps.reporting.integration.AbstractContainerTest.<clinit>(AbstractContainerTest.java:24)
    ... 49 more
Caused by: java.lang.IllegalStateException: Can not connect to Ryuk
    at org.testcontainers.utility.ResourceReaper.start(ResourceReaper.java:150)
    at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:131)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:51)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:27)
    at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
    at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
    at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1151)
    ... 54 more
2020-10-12T13:13:06.709警告testcontainers ryuk[rg.testcontainers.utility.ResourceReaper]-无法连接到本地主机上的ryuk:32778
java.net.ConnectException:拒绝连接(拒绝连接)
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于java.net.Socket.connect(Socket.java:538)
位于java.net.Socket。(Socket.java:434)
位于java.net.Socket。(Socket.java:211)
位于org.testcontainers.utility.ResourceReaper.lambda$start$1(ResourceReaper.java:114)
运行(Thread.java:748)
java.lang.ExceptionInInitializeError
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
...
原因:org.testcontainers.containers.ContainerFetchException:无法获取Docker映像:RemoteDockerImage(imageName=ryangoh/oracle\u 12c\u r1\u xe:latest)
位于org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1153)
位于org.testcontainers.containers.GenericContainer.setDockerImageName(GenericContainer.java:1141)
位于org.testcontainers.containers.GenericContainer.(GenericContainer.java:246)
位于org.testcontainers.containers.JdbcDatabaseContainer.(JdbcDatabaseContainer.java:36)
位于org.testcontainers.containers.OracleContainer.(OracleContainer.java:40)
位于com.vocalink.bps.reporting.integration.AbstractContainerTest.(AbstractContainerTest.java:24)
... 49多
原因:java.lang.IllegalStateException:无法连接到Ryuk
位于org.testcontainers.utility.ResourceReaper.start(ResourceReaper.java:150)
位于org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:131)
位于org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:51)
位于org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:27)
位于org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
位于org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
位于org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1151)
... 54多
有人知道如何解决这个问题吗


提前感谢。

问题是由新docker版本引起的。如果您将docker更新为2.4.0,那么您可以尝试一些选项

  • 在docker首选项中关闭“使用gRPC FUSE进行文件共享”选项
  • 将testcontainers更新为1.15.0-rc2
  • 将docker降级为2.3.x
  • 我尝试了第一种选择,它对我有效


    我用苹果电脑。我不知道其他平台上是否存在类似问题。

    您能否将
    docker ps
    docker images
    命令的结果添加到问题中?@wak786我找到了答案。看起来docker 2.4.0中有一个问题mac@Andrey它对我也很管用,但我觉得它运行得比较慢。您是否遇到过此类问题?