jenkins上使用docker插件 –

我试图使用Jenkins上的docker插件来运行现有容器的实例。 Docker版本1.6.0,版本4749651

我select了“创build容器”input图像名称的图像ID,并尝试了一个主机http://172.16.42.43:4243 ,也尝试了一个空的主机。 我不断收到这个错误:

ERROR: Build step failed with exception java.lang.NullPointerException: uri was not specified at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204) at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.withUri(DockerClientConfig.java:406) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.createDockerClient(DockerBuilder.java:123) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:201) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:71) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) at hudson.model.Build$BuildExecution.build(Build.java:205) at hudson.model.Build$BuildExecution.doRun(Build.java:162) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) at hudson.model.Run.execute(Run.java:1744) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:374) Build step 'Execute Docker container' marked build as failure 

有人能告诉我如何解决? 另外,如果有人使用过这个插件,请让我知道这是否有效。

也尝试了“执行docker集装箱” – >启动容器与指定的容器标识导致相同的错误。

另一种方法:我尝试使用Execute壳插件,我得到这个错误:

 + docker start d023eec1ff34 Post http:///var/run/docker.sock/v1.18/containers/d023eec1ff34/start: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS? time="2015-05-05T10:26:34-07:00" level=fatal msg="Error: failed to start one or more containers" 

如果我只是去terminal,切换到jenkins用户并运行docker start命令,它工作正常。 如果有人知道如何解决这个问题,那也会很好。

假设Docker运行在同一台机器上,请确保运行Docker:

-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock

然后去pipe理jenkins>configuration>configuration系统,然后向下滚动到Docker生成器和在Docker服务器REST的URLinputhttp://localhost:4243

编辑:我最初告诉docker听0.0.0.0绑定到所有的IP地址,并可以允许从外部的连接,如果你的防火墙让stream量通过。 所以我更新它来绑定到回送地址。 此外,文档的当前版本推荐使用不同的端口,但是由于您手动指定端口,所以任何端口都可以使用。

你需要给Jenkins用户权限来使用docker,把它添加到docker组中运行

 sudo usermod -a -G docker jenkins