我有2个aws 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
当我点击"测试连接"按钮,我明白了:
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)
在另一个stackoverflow帖子上,有人建议点击"应用"按钮第一,但这不起作用,因为我得到一个错误弹出stactrace声明java.lang.NullPointerException。
答案 0 :(得分:1)
尝试在以下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
使用
从Docker打开测试端口到Jenkins主机telnet docker_host_ ip 2376