【问题标题】:Docker-Java: Starting container with argumentsDocker-Java:使用参数启动容器
【发布时间】:2018-06-25 10:15:39
【问题描述】:

我正在尝试使用 docker-java 启动一个 docker 容器。 使用 DockerClient.startContainerCmd 方法对我有用,但我需要使用参数启动容器。 从这个方法返回的StartContainerCmd 类在我执行之前没有任何方法来提供参数。

有办法吗?

【问题讨论】:

    标签: java docker docker-java


    【解决方案1】:

    StartContainerCmd 委托给StartContainerCmdExec,它抽象了Start Container REST 操作。 Operation只有一个路径参数(容器的id)。如果您需要提供其他参数,则需要使用这些参数创建容器:

    CreateContainerResponse container = dockerClient.createContainerCmd(IMAGE_NAME)
                    .withCmd("cmd", "arg1", "arg2").exec()
    

    获取容器的id,然后启动它:

    dockerClient.startContainerCmd(container.getId()).exec();

    【讨论】:

      【解决方案2】:

      它应该很容易与https://www.github.com/amihaiemil/docker-java-api一起工作:

      final Docker docker = new LocalDocker(...);//or RemoteDocker(...)
      final Container container = docker.containers().create(/*JsonObject*/).start();
      

      传递给 Containers.create(...) 的 JsonObject 应该是 Docker 的 API 期望作为输入的对象(请参阅 API 文档)。在那个 JsonObject 中,您还应该能够指定启动脚本。

      【讨论】:

        猜你喜欢
        • 2020-05-01
        • 2017-11-14
        • 2014-05-18
        • 2015-07-09
        • 2016-01-30
        • 2017-03-24
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多