2016-05-31 9 views
0

Ich verwende: Docker Version: 1.11.1, bauen 5604cbe. Ich habe in /etc/default/docker Eingaben wie folgt REST API von Docker für jenkins Benutzergruppe zu konfigurieren: IDocker REST API ist nicht verbindlich für Port für Jenkins

# 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- Ich habe auch versucht, mit 127.0.0.1

Dann tat sudo service docker restart

Befehl $ ps aux|grep docker zurückgegeben:

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 

Scheint so, als würde die REST API keine Bindung an Port erhalten: 9090.

Dann bin ich mit Jenkins Docker bauen Schritt Plugin mit Docker REST API verbinden. Es gibt folgende:


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) 

An den jenkins globalen Einstellung, wenn ich getroffen Test-Verbindung es zurück:

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- Ich habe neu gestartet Jenkins Server nach dem Wechsel globale Einstellung.

Irgendwelche Hilfe, wo fehlt mir?

+0

Können Sie vom Host auf die Rest-API zugreifen? – Shibashis

+0

Nein. Es wird zurückgegeben. ** Verbindung fehlgeschlagen. Verbindung abgelehnt**. Ich benutze Ubuntu 16.04 – Pratyush

Antwort

1

Ubuntu 16.04 verwendet systemd jetzt glaube ich. In diesem Fall werden die docker daemon Argumente nicht mit /etc/default/docker festgelegt. Sie können sehen, dass sie nicht in der Ausgabe Ihres $ ps aux|grep docker abgeholt werden.

Stattdessen müssen Sie follow the instructions Daemon Args in systemd-basierten Setups festlegen.

+0

Vielen Dank @jharris – Pratyush