Docker-Java:使用参数启动容器

时间:2018-06-25 10:15:40

标签: java docker docker-java

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

有办法吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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期望作为输入的JsonObject(请参阅API文档)。在该JsonObject中,您还应该能够指定启动脚本。