Что эквивалентно удаленной команде API для 'docker run -d'?
Я пытаюсь вызывать команды Docker через удаленный API.
Кажется, что в удаленном интерфейсе Docker нет опции "Режим отсоединения". http://docs.docker.io/en/latest/commandline/command/run/
Я мог бы использовать это приложение в Bash, и я хотел бы использовать это через удаленный API. https://github.com/grigio/docker-stringer
3 ответа
Действительно, удаленный API не имеет режима "отсоединения", поскольку режим "присоединения" является дополнительной конечной точкой.
Если вы хотите работать в режиме отсоединения с удаленным API, просто создайте и запустите свой контейнер, не подключая его.
Если контейнер все еще закрывается немедленно, используйте docker logs <container id>
проверить на ошибки. Проблема может не иметь ничего общего с detach
,
Важно понимать, что команда "docker run" инкапсулирует серию команд с точки зрения API:
- тянуть изображение (если не доступно локально)
- создать контейнер
- прикрепить к контейнеру
- запускает контейнер
Хотя "docker run -d" - то же самое, что и выше, но без шага "присоединить".
Поэтому вам нужно создать и запустить контейнер при использовании удаленного API.
Если контейнер все еще закрывается немедленно, используйте docker logs <container id>
проверить на ошибки. Проблема может не иметь ничего общего с detach
,
Насколько я могу судить, удаленный эквивалент API -i
Опция CLI "OpenStdin": true
в призыве к /containers/create
, Без этого кажется, что все, что читает от stdin, получает EOT
,
Здесь stdin инициализируется (или не инициализируется) как канал к контейнеру, я не отслеживал его за этим.