使用java客户端启动docker容器时连接被拒绝

使用java客户端启动docker容器时连接被拒绝,java,docker,Java,Docker,我是docker新手,我想使用java客户端启动docker容器 我试了如下 package containers.launch_containers; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.core.DockerClientBuilder; public class StartContainers{ DockerClient dockerClient; pu

我是docker新手,我想使用java客户端启动docker容器

我试了如下

package containers.launch_containers;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.core.DockerClientBuilder;

public class StartContainers{
     DockerClient dockerClient;

    public StartContainers() {
        startContainers();
    }

    public void startContainers() {
           try {

                dockerClient = DockerClientBuilder.getInstance("tcp://127.0.0.1:2375").build();
                //starting the container of hello-world 
                dockerClient.startContainerCmd("hello-world").exec();


    }catch(Exception ex)
           {
             ex.printStackTrace();
           }
    }

    public static void main(String args[])
    {
        StartContainers startContainers=new StartContainers();
    }   
}
   dockerClient = DockerClientBuilder.getInstance().build();
    //starting the container    
   CreateContainerResponse container = dockerClient.createContainerCmd("hello-world")
           .withCmd()
           .exec();
   dockerClient.startContainerCmd(container.getId()).exec();
   //stop the container 
   dockerClient.stopContainerCmd(container.getId()).exec();
在bashrc中设置所需的配置

导出DOCKER\u主机=tcp://127.0.0.1:2375

导出DOCKER_OPTS=-Htcp://127.0.0.1:2375 -H unix:///var/run/docker.sock

localhost中的Docker映像

我有个例外

javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException:连接到 127.0.0.1:2375[/127.0.0.1]失败:连接被拒绝连接被拒绝 org.glassfish.jersey.apache.connector.ApacheConnector.applyApacheConnector.java:481 在 org.glassfish.jersey.ClientRuntime.invokeClientRuntime.java:252 在 org.glassfish.jersey.client.JerseyInvocation$1.callJerseyInvocation.java:684 在 org.glassfish.jersey.client.JerseyInvocation$1.callJerseyInvocation.java:681 位于org.glassfish.jersey.internal.Errors.processErrors.java:315 at org.glassfish.jersey.internal.Errors.processErrors.java:297 at org.glassfish.jersey.internal.Errors.processErrors.java:228 at org.glassfish.jersey.process.internal.RequestScope.runInScopeRequestScope.java:444 在 org.glassfish.jersey.client.JerseyInvocation.invokeJerseyInvocation.java:681 在 org.glassfish.jersey.client.JerseyInvocation$Builder.methodJerseyInvocation.java:437 在 org.glassfish.jersey.client.JerseyInvocation$Builder.postJerseyInvocation.java:343 在 com.github.dockerjava.jaxrs.StartContainerCmdExec.executeStartContainerCmdExec.java:29 在 com.github.dockerjava.jaxrs.StartContainerCmdExec.executeStartContainerCmdExec.java:12 在 com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.execAbstrSyncDockerCmdExec.java:23 在 com.github.dockerjava.core.command.absrdockercmd.execabsrdockercmd.java:35 在 com.github.dockerjava.core.command.StartContainerCmdImpl.execStartContainerCmdImpl.java:46 在 容器.launch_containers.StartContainers.startContainersStartContainers.java:18 在 容器。启动容器。StartContainers.StartContainers.java:10 在 容器.launch_容器.StartContainers.mainStartContainers.java:29


我解决了这个问题,我应该得到如下容器Id

package containers.launch_containers;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.core.DockerClientBuilder;

public class StartContainers{
     DockerClient dockerClient;

    public StartContainers() {
        startContainers();
    }

    public void startContainers() {
           try {

                dockerClient = DockerClientBuilder.getInstance("tcp://127.0.0.1:2375").build();
                //starting the container of hello-world 
                dockerClient.startContainerCmd("hello-world").exec();


    }catch(Exception ex)
           {
             ex.printStackTrace();
           }
    }

    public static void main(String args[])
    {
        StartContainers startContainers=new StartContainers();
    }   
}
   dockerClient = DockerClientBuilder.getInstance().build();
    //starting the container    
   CreateContainerResponse container = dockerClient.createContainerCmd("hello-world")
           .withCmd()
           .exec();
   dockerClient.startContainerCmd(container.getId()).exec();
   //stop the container 
   dockerClient.stopContainerCmd(container.getId()).exec();
参考文献