Jenkins的Docker_Host与mvn fabric8:build

我正在尝试安装Jenkins为Kubernetes集群构build简单的java微服务。

mvn clean package fabric8:build

我在Jenkins中定义了DOCKER_HOST环境variablesDOCKER_HOST=tcp://192.168.20.1:2375

成功构build胖JAR后,我的构build失败,出现以下错误

[ERROR] Failed to execute goal io.fabric8:fabric8-maven-plugin:3.5.31:build (default-cli) on project echo: Cannot create docker access object: Cannot extract API version from server http://192.168.20.1:2375 : No route to host -> [Help 1]

我的Docker主机在Linux上运行。 我更改了daemon.json以添加以下重新启动的docker主机

{ "ipv6": false , "live-restore": true,
"hosts" : ["tcp://192.168.20.1:2375"] }

问题仍然存在:

几个问题:

  1. 为什么fabric8parsingtcp到http? 请看看错误信息。

  2. 还有什么需要在Docker主机上完成tcp://192.168.20.1:2375上的请求吗?

TIA

这纯粹是一个Docker主机设置问题。 要远程访问Docker守护程序,应该启用tcp套接字。 更多细节在这里: https : //docs.docker.com/engine/reference/commandline/dockerd/#examples

基于我们的设置,我编辑了/etc/docker/daemon.json来添加“hosts”参数

{ "ipv6": false , "live-restore": true, "hosts" : ["tcp://192.168.20.1:2375"] }

使用命令systemctl restart docker.service守护进程

确保netstat -tunlp | grep 2375 tcp 0 0 192.168.20.1:2375 0.0.0.0:* LISTEN 14648/dockerd守护进程正在监听端口2375 netstat -tunlp | grep 2375 tcp 0 0 192.168.20.1:2375 0.0.0.0:* LISTEN 14648/dockerd netstat -tunlp | grep 2375 tcp 0 0 192.168.20.1:2375 0.0.0.0:* LISTEN 14648/dockerd

如果在执行上述操作后,如果仍然无法远程访问Docker守护程序,请检查是否有防火墙阻止了外部请求。

您可以停止它们或设置一个规则来允许基于您的configuration的stream量。

希望这可以帮助