无法将Jenkins jlnp奴隶连接到使用Docker jenkins / jenkins安装的Centos 7 master?

时间:2017-08-23 17:08:57

标签: docker jenkins firewall ports jenkins-slave

Jenkins Centos 7 master是从Docker jenkins/jenkins安装的。

我无法使用jlnp将旧的Windows 7,macOS和Linux从服务器连接到主服务器。

通常Jenkins从属代理显示:

  • "尝试协议:JNLP4-connect"
  • "终止"
  • 重复

线索:

  • 偶尔Windows7" Jenkins奴隶代理"将显示"已连接"。
  • 但是,Jenkins主节点将节点显示为未连接

安装使用:

sudo systemctl start docker
sudo docker pull jenkins/jenkins
sudo docker run --name jenkins -p 8080:8080 -p 50000:50000 -u 1001 -v /home/jenkins/jenkins:/var/jenkins_home jenkins/jenkins
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload

添加了线索:

  • 这是我第一次使用Docker安装jenkins。
  • 正在运行/ home / jenkins / jenkins。
  • 我在/ jenkins / logs / slaves /
  • 中找不到有用的线索
  • 我禁用Centos&主从上的防火墙

    我是码头工新手。

    sudo docker logs -f jenkins

显示JNLP4连接错误,表示root无法写入。

我的问题与此非常相似:

docker-slave never connects to master if User is defined in configuration #474

我改为运行LTS版本,现在我可以连接一个奴隶:

sudo docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

1 个答案:

答案 0 :(得分:0)

如果您仍然遇到问题,我建议您尝试作为特权用户运行。这当然不是一个好的安全做法,但至少它可以帮助你找到根本原因。有关详细信息,请参阅:https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities

docker run  --privileged=true  -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

我还会更好地浏览您在docker run上公开的网络,即--network = host。有关更多选项,请参阅:https://docs.docker.com/engine/reference/run/#network-settings

docker run  --network=host -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

将允许您的jenkins docker接管机器的网络接口。同样,这不是一个好的做法,但非常适合调试目的。