Docker-Java: запуск контейнера с аргументами
Я пытаюсь запустить Docker-контейнер, используя Docker-Java. Используя метод DockerClient.startContainerCmd
у меня работает, но мне нужно запустить контейнер с аргументами. StartContainerCmd
Класс, возвращаемый этим методом, не имеет методов для предоставления аргументов до того, как я его выполню.
Есть ли способ сделать это?
2 ответа
StartContainerCmd
делегаты StartContainerCmdExec
который абстрагирует операцию REST Начального контейнера. Операция имеет только один параметр пути (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();
JsonObject, передаваемый в Containers.create(...), должен быть тем, который API-интерфейс Docker ожидает в качестве входных данных (см. API-документы). В этом JsonObject вы также должны иметь возможность указывать сценарии запуска.