Jenkins打包项目提示Docker的2375端口连接超时问题
Jenkins报错内容如下:[Checks API] No suitable checks publisher found.[Docker] ERROR: Failed to exec start:Connect to 192.168.40.37:2375 [/192.168.40.37] failed: connect timed out[Docker] ERROR: Failed to cre
·
Jenkins报错内容如下:
[Checks API] No suitable checks publisher found.
[Docker] ERROR: Failed to exec start:Connect to 192.168.40.37:2375 [/192.168.40.37] failed: connect timed out
[Docker] ERROR: Failed to create docker image: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.40.37:2375 [/192.168.40.37] failed: connect timed out
ERROR: Build step failed with exception
java.net.SocketTimeoutException: connect timed out
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:607)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
Caused: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.40.37:2375 [/192.168.40.37] failed: connect timed out
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
翻看原来的博客,貌似需要改/usr/lib/systemd/system/docker.service
文件,在ExecStart=/usr/bin/dockerd 后插入 -H tcp://0.0.0.0:2375,然后试着改了一下:
vim /usr/lib/systemd/system/docker.service
修改之后,可以从docker的状态里面看到这个属性的值:
然后试着在自己电脑访问:Docker IP:2375/version 仍然访问不通,这就很神奇了。
然后试着在服务器上使用:curl http://服务器IP:2375/version
,就是正常的,返回了一个json串。
那么接着看下防火墙:
#查看防火墙状态
systemctl status firewalld
#启动防火墙 没有提示
systemctl start firewalld
#添加2375端口
firewall-cmd --permanent --zone=public --add-port=2375/tcp
#防火墙重启
firewall-cmd --reload
#查看开放的端口
firewall-cmd --permanent --zone=public --list-ports
防火墙是开着的,然后看下开放的端口,却发现是空的,那么就把2375加上试下,然后重启防火墙:
这时再次访问,则外部电脑可以访问了。
这里有个我不理解的地方,在开放防火墙端口的时候,使用的是2375/tcp
,我还以为只是tcp可以访问了呢,结果外部电脑都可以访问了。
然后来看下Jenkins的配置里面:
Docker Builder
下的Docker URL
这个值刚好是我们之前配的Docker IP,是不是有点巧。
然后尝试再次构建,发现该异常已解决。
更多推荐
已为社区贡献9条内容
所有评论(0)