Docker REST API没有绑定到Jenkins的端口上

我正在使用: docker版本:1.11.1,build立5604cbe 。 我已经在/etc/default/docker docker中创build了如下条目来configurationjenkins用户组的docker的REST API:

  # Use DOCKER_OPTS to modify the daemon startup options. #DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" DOCKER_OPTS="G- jenkins -H unix://var/run/docker.sock -H tcp://0.0.0.0:9090" export DOCKER_HOST="tcp://0.0.0.0:9090" 

ps-我也试过用127.0.0.1

然后,我做了sudo service docker restart

命令$ ps aux|grep docker返回:

 root 12385 0.0 0.2 421840 36016 ? Ssl 19:21 0:00 /usr/bin/docker daemon -H fd:// root 12391 0.0 0.0 294652 12188 ? Ssl 19:21 0:00 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc root 12654 0.0 0.0 21296 1028 pts/1 S+ 19:28 0:00 grep --color=auto docker 

看起来像REST API没有绑定到端口:9090

然后我使用Jenkins Docker构build步骤插件来连接docker REST API。 它返回以下内容:


 Building in workspace /var/lib/jenkins/jobs/Telco_automated_build/workspace [Docker] INFO: Pulling image registry.hub.docker.com/pratyush/product:latest ERROR: Build step failed with exception javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:9090 [/127.0.0.1] failed: Connection refused at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:513) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:664) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:424) at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:333) at com.github.dockerjava.jaxrs.PullImageCmdExec.execute(PullImageCmdExec.java:37) at com.github.dockerjava.jaxrs.PullImageCmdExec.execute(PullImageCmdExec.java:17) at com.github.dockerjava.jaxrs.AbstrDockerCmdExec.exec(AbstrDockerCmdExec.java:57) at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:29) at com.github.dockerjava.core.command.PullImageCmdImpl.exec(PullImageCmdImpl.java:15) at org.jenkinsci.plugins.dockerbuildstep.cmd.PullImageCommand.execute(PullImageCommand.java:75) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:75) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 

jenkins全局设置中,当我点击testing连接时,它返回:

 Something went wrong, cannot connect to http://127.0.0.1:9090/, cause: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:9090 [/127.0.0.1] failed: Connection refused 

PS-更改全局设置后,我重新启动了Jenkins服务器

任何帮助,我在哪里失踪?

Ubuntu 16.04现在使用systemd我相信。 在这种情况下, docker daemon参数不是使用/etc/default/docker 。 你可以看到他们没有在你的$ ps aux|grep docker的输出中find。

相反,您需要按照说明在基于systemd的设置中设置守护进程参数。