[英]Connection refused (Connection refused) while trying to connect between docker containers
[英]Connection refused while launching docker containers using java client
我是docker的新手,我想使用java客戶端啟動docker容器,
我嘗試了https://github.com/docker-java/docker-java如下
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();
}
}
在bashrc中設置所需的配置
導出DOCKER_HOST = tcp://127.0.0.1:2375
export DOCKER_OPTS =“-H tcp://127.0.0.1:2375 -H Unix:///var/run/docker.sock”
本地主機中的Docker映像
我有這個例外
javax.ws.rs.ProcessingException:org.apache.http.conn.HttpHostConnectException:連接到127.0.0.1:2375 [/127.0.0.1]失敗:org.glassfish.jersey.apache.connector上的連接被拒絕(連接被拒絕)。 org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252)的org.glassfish.jersey.client.JerseyInvocation $ 1.call(JerseyInvocation.java:684)的ApacheConnector.apply(ApacheConnector.java:481) org.glassfish.jersey.internal.Errors.process(Errors.java:315)上org.glassfish.jersey.internal.Errors.process $ 1.call(JerseyInvocation.java:681)org.glassfish.jersey.internal.Errors.process (org.glassfish.jersey.internal.Errors.process(Errors.java:228)(org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)處的(Errors.java:297)。 org.glassfish.jersey.client.JerseyInvocation $ Builder.method(JerseyInvocation.java:437)上的glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)在org.glassfish.jersey.client.JerseyInvocation $ B com.github.dockerjava.jaxrs.StartContainerCmdExec.execute(StartContainerCmdExec.java:29)的com.github.dockerjava.jaxrs.StartContainerCmdExec.execute(StartContainerCmdExec.java:12)的uilder.post(JerseyInvocation.java:343) .github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23)位於com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)位於com.github.dockerjava.core.command.StartContainerCmdImpl .exec(StartContainerCmdImpl.java:46)在container.launch_containers.StartContainers.startContainers(StartContainers.java:18)在container.launch_containers.StartContainers。(StartContainers.java:10)在container.launch_containers.StartContainers.main(StartContainers.java) :29)
我解決了這個問題,我應該獲得如下容器ID
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();
參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.