Jenkins上的Docker插件无法testing连接

我有Ubuntu的服务器上安装了docker。 我已经在Docker上安装了Jenkins,并在其上安装了docker-plugin。

我正在尝试使用params添加Cloud-docker:

jenkins.version是1.597

名称:docker泊坞窗url:172.17.42.1:4243连接超时:5读取超时:15

但是在testing连接期间,我一直都在连接拒绝错误:

javax.servlet.ServletException:javax.ws.rs.ProcessingException:java.net.ConnectException:连接在org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)org.kohsuke.stapler.Stapler.invoke( Stapler.java:876)在org.kohsuke.stapler.MetaClass $ 6.doDispatch(MetaClass.java:249)在org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)在org.kohsuke.stapler.Stapler。在org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)org.kohsuke.stapler.Stapler上尝试调用(Stapler.java:746)在org.eclipse上的org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)上的javax.servlet.http.HttpServlet.service(HttpServlet.java:848).service(Stapler.java:238) jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1494)at hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:123)at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)at org。 eclipse.jetty .servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482)at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java :1482)at hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:84)at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482)at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482)at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482)at org.kohsuke .stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)at org.ecl ipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1474)位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499),位于org.eclipse.jetty.server.handler.ScopedHandler。在org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)处处理(ScopedHandler.java:137)在org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)上的.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)位于org.eclipse.jetty.server.session.SessionHandler .doScope(SessionHandler.java:193)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135 )在org.eclipse.jetty.server.handle(Server.java:370)的org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)上的org.eclipse.jetty.server。 AbstractHttpC onnection.handleRequest(AbstractHttpConnection.java:489)at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)at org.eclipse.jetty.server.AbstractHttpConnection $ RequestHandler.content(AbstractHttpConnection.java:1021) org.eclipse.jetty.tt.HttpParser.parseNext(HttpParser.java:865)at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)at org.eclipse.jetty.server.AsyncHttpConnection.handle (AsyncHttpConnection.java:82)at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)at org.eclipse.jetty.io.nio.SelectChannelEndPoint $ 1.run(SelectChannelEndPoint.java:52)在Win32.BoundedExecutorService $ 1.run(BoundedExecutorService.java:77)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)在java.lang.Thread.run(Thread.java:745)引发:javax.ws.rs.ProcessingException:java.net.ConnectEx 在org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:227)上的org.glassfish.jersey.client上,org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:184) .JerseyInvocation $ 3.call(JerseyInvocation.java:693)org.glassfish.jersey.internal.Errors.process(Errors.java:315)at org.glassfish.jersey.internal.Errors.process(Errors.java:297)在org.glassfish.jersey.client.JerseyInvocation的org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:422)处的org.glassfish.jersey.internal.Errors.process(Errors.java:228) .invoke(JerseyInvocation.java:689)at org.glassfish.jersey.client.JerseyInvocation $ Builder.method(JerseyInvocation.java:405)at org.glassfish.jersey.client.proxy.WebResourceFactory.invoke(WebResourceFactory.java:318 )at com.sun.proxy。$ Proxy51.version(Unknown Source)at com.nirima.docker.client.DockerClient $ System.version(DockerClient.java:116)at com.nirima.jenkins.plugins.docker.DockerCloud $ DESCRIPT 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)上的sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)上的orImpl.doTestConnection(DockerCloud.java:341) 43)在org.kohsuke.stapler的java.lang.reflect.Method.invoke(Method.java:606)。函数$ InstanceFunction.invoke(Function.java:298)at org.kohsuke.stapler.Function.bindAndInvoke(Function .java:161)at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)at org.kohsuke.stapler.MetaClass $ 1.doDispatch(MetaClass.java:121)at org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:53)org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)… 48更多原因:java.net.ConnectException:连接被拒绝在java.net.PlainSocketImpl.socketConnect(Native方法)在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)在java.net.AbstractPlainSocketImpl.c 在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)上的java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)上的onnectToAddress(AbstractPlainSocketImpl.java:200)在java.net.Socket.connect(Socket.java :579)at sun.net.NetworkClient.doConnect(NetworkClient.java:175)at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)at sun.net.www.http.HttpClient.openServer( HttpClient.java:527)在sun.net.www.http.HttpClient。(HttpClient.java:211)在sun.net.www.http.HttpClient.New(HttpClient.java:308)在sun.net.www。 http.HttpClient.New(HttpClient.java:326)在sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)在sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection。 java:932)at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)at java.net .HttpURLConnection.getResponseCode(HttpURLConnectio n.java:468)at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:276)at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:182)… 70 more

什么可能是错的?

谢谢

问题解决了

无论如何,打开端口4243的监听程序也应该被打开,即使你在有docker的主机上运行jenkins。 我做的。 但是我正在运行监听器:

sudo docker -H tcp://127.0.0.1:4243 -d & 

但应该是

  sudo docker -H tcp://0.0.0.0:4243 -d & 

并且不要忘记给防火墙添加规则。

您可以使用下面的条目更新/etc/default/docker.io文件。

 DOCKER_OPTS="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"