Jenkins无法使用docker插件启动docker slave

Jenkins无法使用docker插件启动docker slave,docker,jenkins,jenkins-plugins,centos7,Docker,Jenkins,Jenkins Plugins,Centos7,我正在使用Jenkins Docker插件在Docker主机上动态启动从属服务器。Jenkins master在同一台主机上运行。构建时,它在docker主机上拾取一个随机端口,无法连接到该端口。它启动docker容器。这是日志。只说了这么多。如何调试该问题 INFO: Started container ID 54fe5780ca820a6e2b7cae40610cfc3229dbf889b0c66d6e34a39b74e13aaec7 for node slave-0000w16w841rc

我正在使用Jenkins Docker插件在Docker主机上动态启动从属服务器。Jenkins master在同一台主机上运行。构建时,它在docker主机上拾取一个随机端口,无法连接到该端口。它启动docker容器。这是日志。只说了这么多。如何调试该问题

INFO: Started container ID 54fe5780ca820a6e2b7cae40610cfc3229dbf889b0c66d6e34a39b74e13aaec7 for node slave-0000w16w841rc from image: jenkinsubuntu
Feb 28, 2019 9:35:54 PM com.nirima.jenkins.plugins.docker.utils.PortUtils$ConnectionCheckSSH execute
INFO: SSH port is open on 127.0.0.1:10007
[02/28/19 21:35:54] SSH Launch of slave-0000w16w841rc on 127.0.0.1 failed in 29 ms 
Feb 28, 2019 9:36:03 PM hudson.slaves.NodeProvisioner$2 run
INFO: Image of jenkinsubuntu provisioning successfully completed. We have now 7 computer(s) `

没有找到答案。但是最终在docker插件的docker模板中选择了连接方法
附加docker容器
,从而使其正常工作。

虽然您已经发布了另一种方法,但在这里您应该做什么,以及在询问如何调试问题时应该注意的事项

  • 您需要一个包含
    SSHD
    的图像,并且建议将其用作自定义图像的基础
  • 根据您提供的日志,您似乎使用了一个名为
    jenkinsubuntu
    的自定义图像,假设该图像基于以下内容,那么您需要确保没有覆盖原始入口点: 避免重写docker命令,因为SSH启动器依赖它

    在代理运行时启动并建立连接之前,可以使用入口点在构建代理容器内运行一些辅助服务。只需确保您的入口点最终运行传递的命令:

    exec“$@”

  • 最后,确保ssh所在的主机包含一个私钥,该私钥与容器中注入的公钥相匹配

    如果解决了第一点和第二点,那么下面是调试ssh问题应该做的事情

    • 您可以尝试在同一容器运行时使用ssh登录到该容器
    • 如果上一步有效,则使用
      docker logs
      或通过检查
      /var/log
      检查日志,请注意,您可能需要将
      /etc/ssh/sshd_config
      下的
      LogLevel
      更改为
      VERBOSE
      ,以将ssh登录尝试的所有详细信息保存在
      /var/log/auth.log
      文件中,您可以在该文件中识别问题

您是否能够从jenkins主机连接到docker主机。看起来可能有两个问题。与docker主机的连接或jenkins与docker主机的身份验证。验证了吗?@ygbgames非常确定它可以访问docker主机。但就像你说的,docker主机的身份验证?我们谈论的是哪种身份验证?如果它正在尝试ssh,那么它应该是基于ssh密钥的身份验证。您能告诉我们“jenkinsubuntu”映像的定义吗?你用的是什么版本的Jenkins?谢谢Mostafa。我将当前映像基于ssh从属映像。我将尝试更改日志级别,看看它告诉我什么。@Uppi您正在尝试使用root用户登录吗?不,用户是Jenkins您是否更改了日志级别?