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

标签 java selenium docker

我想使用 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/

相关文章:

java - 控制 HTML JLabel 的重新验证

java - 使用 SimpleDateFormat 和 parsePosition 进行日期解析

java - 从字节数组序列中读取行

selenium - 有没有办法告诉 Selenium runner 驱动程序在哪里使用命令行?

python - 用 selenium 和 python 单击特殊按钮

c# - 在 docker 容器异常 : Unable to load DLL 'System.Security.Cryptography.Native.OpenSsl' 中运行的身份服务器 4

java - Eclipse 使用运行时 exec 提供与 cmd 不同的输出

selenium - 如何在 chromedriver 中启用地理定位支持?

docker daemon 重新启动后,docker 容器无法启动

python - 无法在 docker 容器内加载动态库 'libcudart.so.11.0'