【问题标题】:How To Create And Start Docker Container node, detached mode using docker-java如何使用 docker-java 创建和启动 Docker 容器节点,分离模式
【发布时间】:2017-04-03 07:58:54
【问题描述】:

我想使用 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();

其实IDK如何指定--link。请帮我。抱歉,我是 Docker 新手。

【问题讨论】:

    标签: java selenium docker


    【解决方案1】:

    您使用哪个版本的 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();
    

    【讨论】:

    • 谢谢 :) 它在这里工作,我只是更新到那个版本然后繁荣。这行得通。非常感谢
    猜你喜欢
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多