我想使用 docker java 客户端创建并运行 docker。我想运行这样的东西:
docker run -d --link selenium-hub:hub selenium/node-chrome:2.53.0
如何在docker-java客户端上执行该命令?这是到目前为止我的代码:
CreateContainerResponse response = dockerClient
.createContainerCmd("selenium-hub:hub")
.withName(name)
.withImage("selenium/"+browser+":"+version)
.withAttachStderr(false)
.withAttachStdin(false)
.withAttachStdout(false)
.exec();
实际上不知道如何指定--link。请帮我。抱歉,我是 Docker 新手。
最佳答案
您使用哪个版本的 docker-java?我尝试了当前版本(3.0.8),有一个 withLinks
容器创建方法。您可以在 github page 上找到示例。 。
请记住,您必须先提取这些镜像 ( docker pull <imageName>
),然后才能使用该镜像创建容器。
测试示例:
CreateContainerResponse container1 = dockerClient
.createContainerCmd("busybox")
.withCmd("sleep", "9999")
.withName("container1")
.exec();
dockerClient.startContainerCmd(container1.getId()).exec();
...
CreateContainerResponse container2 = dockerClient
.createContainerCmd("busybox")
.withCmd("sleep", "9999")
.withName("container2")
.withLinks(new Link("container1", "container1Link"))
.exec();
dockerClient.startContainerCmd(container2.getId()).exec();
与您的 docker run
相匹配的代码我认为命令应该如下所示:
CreateContainerResponse container2 = dockerClient
.createContainerCmd("selenium/node-chrome:2.53.0")
.withLinks(new Link("selenium-hub", "hub"))
.exec();
dockerClient.startContainerCmd(container2.getId()).exec();
关于java - 如何使用 docker-java 创建并启动 Docker 容器节点,分离模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179393/