docker配置jenkins slave時,報provided port 50000 is not reachable異常


1.背景描述

采用docker配置jenkins的master-slave時,在slave機器執行從節點對接master命令:

 java -jar agent.jar -jnlpUrl http://192.168.10.136:8080/computer/slave1/slave-agent.jnlp -secret 1c6f46bcb3d50b9bd765e27a77ac8b8230555639b2f9c21e20c41720b0219505 -workDir "/usr/local/data/jenkins/jenkins_slave"

2.異常信息:
嚴重: http://192.168.10.136:8080/ provided port:50000 is not reachable
java.io.IOException: http://192.168.10.136:8080/ provided port:50000 is not reachable
        at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:314)
        at hudson.remoting.Engine.innerRun(Engine.java:694)
        at hudson.remoting.Engine.run(Engine.java:519)

3.異常原因:

docker容器下jenkins設置的端口沒有映射到宿主機端口。

4.解決方法

4.1 確認並指定master機器jenkins代理端口為指定端口,並勾選代理協議

docker配置jenkins slave時,報provided port 50000 is not reachable異常_第1張圖片

4.2 啟動docker時,設置50000端口映射

docker run -d -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /usr/local/data/jenkins/jenkins_home:/var/jenkins_home \
jenkins/jenkins

 

附:運行時docker容器添加端口映射

第一種方式:

1. 獲取容器IP

docker inspect <container_id> | grep IPAddress

2. 通過iptable轉發端口,並做映射

iptables -t nat -A DOCKER -p tcp --dport 50000 -j DNAT --to-destination 172.17.0.3:50000

3.重啟容器

docker restart <container_id>

第二種方式:

1. 將容器commit為鏡像

docker commit -a='作者' -m='備注' 運行時容器ID 新鏡像名稱

2. 重新運行新鏡像,並設置50000端口映射


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM