Docker-Java: 带参数的启动容器
Docker-Java: Starting container with arguments
我正在尝试使用 docker-java 启动一个 docker 容器。
使用方法 DockerClient.startContainerCmd
对我有用,但我需要用参数启动容器。
从此方法返回的 StartContainerCmd
class 在我执行它之前没有任何方法可以提供参数。
有办法吗?
StartContainerCmd
委托给 StartContainerCmdExec
,它抽象了 Start Container REST 操作。 Operation只有一个路径参数(容器的id
)。如果您需要提供额外的参数,您需要使用这些参数创建容器:
CreateContainerResponse container = dockerClient.createContainerCmd(IMAGE_NAME)
.withCmd("cmd", "arg1", "arg2").exec()
获取容器的id
然后启动它:
dockerClient.startContainerCmd(container.getId()).exec();
它应该很容易与 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 中,您还应该能够指定启动脚本。
我正在尝试使用 docker-java 启动一个 docker 容器。
使用方法 DockerClient.startContainerCmd
对我有用,但我需要用参数启动容器。
从此方法返回的 StartContainerCmd
class 在我执行它之前没有任何方法可以提供参数。
有办法吗?
StartContainerCmd
委托给 StartContainerCmdExec
,它抽象了 Start Container REST 操作。 Operation只有一个路径参数(容器的id
)。如果您需要提供额外的参数,您需要使用这些参数创建容器:
CreateContainerResponse container = dockerClient.createContainerCmd(IMAGE_NAME)
.withCmd("cmd", "arg1", "arg2").exec()
获取容器的id
然后启动它:
dockerClient.startContainerCmd(container.getId()).exec();
它应该很容易与 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 中,您还应该能够指定启动脚本。