如何创build和启动Docker容器节点,使用docker-java分离模式

我想使用docker java客户端来创build和运行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(); 

其实IDK如何指定–link。 请帮帮我。 抱歉,我是Docker中的新成员。

你使用docker-java的哪个版本? 我尝试了当前版本(3.0.8),并有一个用于容器创build的withLinks方法。 你可以在github页面find一个例子。 请记住,您必须先拉动这些图像( docker pull <imageName> ),然后才能使用该图像创build容器。

testing示例:

 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();