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 вы также должны иметь возможность указывать сценарии запуска.

Другие вопросы по тегам