2

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

有没有办法做到这一点?

4

2 回答 2

2

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

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

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

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

于 2018-06-25T12:14:20.697 回答
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 期望作为输入的对象(请参阅 API 文档)。在那个 JsonObject 中,您还应该能够指定启动脚本。

于 2018-11-27T08:28:57.777 回答