将运行在独立ec2主机上的docker节点连接到Jenkins

我有2个EC2实例。 一个运行Jenkins,另一个运行Docker。 我正在尝试连接运行在Docker主机上的容器作为节点的Jenkins。

要启动Docker主机上的容器,我运行以下命令:

sudo dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock

在云端设置(在jenkins / configure下)

Docker主机URI: tcp://IP-ADDRESS-OF-EC2-DOCKER-HOST:2376

Docker主机名或IP地址: IP-ADDRESS-OF-EC2-DOCKER-HOST

Dockerfile:

 FROM ubuntu:16.04 RUN apt-get update RUN apt-get install openjdk-8-jdk -y RUN mkdir -p /home/jenkins EXPOSE 22 

ec2 Docker主机安全开放传入端口:2375,2376,4243,22

当我点击“testing连接”button时,我得到:

 Connection refused: /IP-ADDRESS-OF-EC2-DOCKER-HOST:2376 java.net.ConnectException: Connection refused Caused: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /IP-ADDRESS-OF-EC2-DOCKER-HOST:2376 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:352) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:632) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) at java.lang.Thread.run(Thread.java:748) 

在另一个stackoverflowpost中,有人build议首先点击“应用”button,但这不起作用,因为我得到一个错误popupstctrace说明java.lang.NullPointerException。

在下面的CMD中尝试使用IP-ADDRESS-OF-EC2-DOCKER-HOST而不是127.0.0.1

sudo dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock

testing端口是从Docker打开到Jenkins主机使用的

telnet docker_host_ ip 2376