Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
如何将SpringWebClient连接到Unix域套接字?_Spring_Docker_Spring Webflux_Reactor Netty - Fatal编程技术网

如何将SpringWebClient连接到Unix域套接字?

如何将SpringWebClient连接到Unix域套接字?,spring,docker,spring-webflux,reactor-netty,Spring,Docker,Spring Webflux,Reactor Netty,Spring的WebClient底层使用Netty访问Unix域套接字。我试图让它访问/var/run/docker.sock,这样我就可以根据需要使用API执行docker java库不支持的/services操作 我目前的解决方法是创建一个socat容器,该容器将Docker套接字公开给内部网络中的TCP,从而允许我使用WebClient的HTTP连接 尽管考虑到这一点,使用此解决方案有一个好处,即不需要在manager节点上放置更大的Java应用程序 但是,我仍然很好奇如何连接到unix域

Spring的WebClient底层使用Netty访问Unix域套接字。我试图让它访问
/var/run/docker.sock
,这样我就可以根据需要使用API执行docker java库不支持的
/services
操作

我目前的解决方法是创建一个socat容器,该容器将Docker套接字公开给内部网络中的TCP,从而允许我使用WebClient的HTTP连接

尽管考虑到这一点,使用此解决方案有一个好处,即不需要在manager节点上放置更大的Java应用程序


但是,我仍然很好奇如何连接到unix域docket。

您可以通过TCP公开docker守护程序并使用REST API。

您可以创建一个Netty HttpClient

然后你可以告诉WebClient像这样使用这个HttpClient

WebClient.builder()
         .clientConnector(new ReactorClientHttpConnector(client))
         .build();

这就是我所做的(第二段是我的变通方法),我试图避免这种情况,我也很好奇这是否有可能。
WebClient.builder()
         .clientConnector(new ReactorClientHttpConnector(client))
         .build();