【问题标题】:docker run jenkins, socket connect timeoutdocker run jenkins,套接字连接超时
【发布时间】:2018-12-11 01:28:07
【问题描述】:

码头工人###

docker pull jenkins/jenkins

docker run -p 8090:8090 -p 50000:50000 -e JAVA_OPTS="-Duser.timezone=Seoul/Asia" jenkins/jenkins:lts

码头工人日志

Dec 11, 2018 1:17:23 AM hudson.model.UpdateCenter updateDefaultSite
WARNING: Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail.
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:589)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
    at hudson.model.DownloadService.loadJSON(DownloadService.java:167)
    at hudson.model.UpdateSite.updateDirectlyNow(UpdateSite.java:186)
    at hudson.model.UpdateCenter.updateDefaultSite(UpdateCenter.java:2302)
    at jenkins.install.SetupWizard.init(SetupWizard.java:172)
    at jenkins.install.InstallState$InitialSecuritySetup.initializeState(InstallState.java:166)
    at jenkins.model.Jenkins.setInstallState(Jenkins.java:1054)
    at jenkins.install.InstallUtil.proceedToNextStateFrom(InstallUtil.java:97)
    at jenkins.install.InstallState$Unknown.initializeState(InstallState.java:84)
    at jenkins.model.Jenkins$16.run(Jenkins.java:3221)
    at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
    at jenkins.model.Jenkins$5.runTask(Jenkins.java:1083)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Dec 11, 2018 1:17:23 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Download metadata. 25,476 ms
Dec 11, 2018 1:17:23 AM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Dec 11, 2018 1:17:23 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running

centOS 7 防火墙

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: docker0 enp4s0f0
  sources: 
  services: ssh dhcpv6-client http https
  ports: 77/tcp 80/tcp 443/tcp 3306/tcp
  protocols: 
  masquerade: no
  forward-ports: port=443:proto=tcp:toport=8443:toaddr=
    port=80:proto=tcp:toport=8090:toaddr=
  source-ports: 
  icmp-blocks: 
  rich rules: 
#

我将在 centos7 上使用 docker 来驱动 Jenkins。 但是,在重置屏幕上显示 Jenkins 重置密码后,会发生套接字超时。

有什么方法可以解决这个问题? 由于一个麻烦的问题,我已经好几天没有上路了。 我希望你能帮助我。谢谢。

【问题讨论】:

  • 如果需要代理上网,可以在阅读文档后尝试指定代理。

标签: sockets docker jenkins firewalld


【解决方案1】:

您能否通过netstat -ntl 命令显示端口是如何转发的,以查看转发是针对ipv4 还是ipv6? 如果问题是代理,它可以是解决方案之一: 命令:

docker pull --proxy http://9.1.0.228:3128 ubuntu

或编辑etc/default/docker 文件: https://blog.codeship.com/using-docker-behind-a-proxy/

【讨论】:

  • tcp 0 0 0.0.0.0:77 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN tcp6 0 0 :::3306 :::* LISTEN tcp6 0 0 :::77 :::* LISTEN tcp6 0 0 :::36882 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
  • 抱歉的评论格式。这是 netstat -ntl 结果。
  • 安装centos7后,没有设置代理。有什么需要检查的吗?
  • windows dockers不需要代理相关的设置,但是centos7需要这个吗?
  • 您好,在 CentOS 代理上,您可以在 etc/environment file 中进行配置。更多信息在这里:[链接]linuxtechi.com/…。测试到 traceroute 命令的连接。
猜你喜欢
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 2011-02-05
  • 2018-11-26
  • 2020-06-02
  • 2016-10-02
相关资源
最近更新 更多