Как использовать docker remote api для создания контейнера?
Я новичок в докере. Я прочитал учебник в удаленном API-интерфейсе docker. В аспекте создания контейнера. Это показывает мне слишком много параметров для заполнения. Я хочу знать, что эквивалентно этой команде:
docker run -d -p 5000: 5000 --restart = always - имя реестра реестр:. 2
Я понятия не имею об этом. Может ли кто-нибудь сказать мне? Спасибо!
Ответы
Ответ 1
Оригинальный ответ (июль 2015 г.):
Это будет (не проверено напрямую), как в этом учебнике (при условии удаленный API включен):
Сначала создайте контейнер:
curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2.",}' http://localhost:2376/containers/create?name=registry
Затем запустите его:
curl -v -X POST -H "Content-Type: application/json" -d '{"PortBindings": { "5000/tcp": [{ "HostPort": "5000" }] },"RestartPolicy": { "Name": "always",},}' http://localhost:2376/containers/registry/start?name=registry
Обновить февраль é017 для докеров 1.13+ см. rocksteady , используя аналогичную идею, но с текущим engine/api/v1.26.
Ответ 2
Более или менее простое копирование VonC ответ для обновления до сегодняшней версии docker (1.13) и версия удаленной api-версии док-станции ( v1.26).
Что другое:
- Вся конфигурация должна быть выполнена при создании контейнера, в противном случае при запуске контейнера возвращается сообщение об ошибке VonC.
{"message":"starting container with non-empty request body was deprecated since v1.10 and removed in v1.12"}
Сначала создайте контейнер: (включая всю конфигурацию)
curl -v -X POST -H "Content-Type: application/json" -d @docker.conf http://localhost:2376/containers/create?name=registry
Файл docker.conf
выглядит следующим образом:
{
"Image": registry:2.",
"ExposedPorts": {
"5000/tcp": {}
},
"HostConfig": {
"PortBindings": {
"5000/tcp": [
{
"HostPort": "5000"
}
]
},
"RestartPolicy": {
"Name": "always"
}
"AutoRemove": true
}
}
Затем запустите его: (параметр name не нужен, контейнер называется только реестр).
curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start
Ответ 3
Создать Docker-контейнер в Docker Engine v1.24
Выполнить почтовый запрос -
curl -X POST -H "Content-Type: application/json" http://DOCKER_SERVER_HOST:DOCKER_PORT/v1.24/containers/create?name=containername
В теле запроса вы можете указать параметры JSON, такие как
{
"Hostname": "172.x.x.x",
"Image": "docker-image-name",
"Volumes": "",
"Entrypoint": "",
"Tty": true
}
Создает ваш докер контейнер
Запустить контейнер
Выполнить запрос POST
curl -X POST http://DOCKER_SERVER_HOST:DOCKER_PORT/v1.24/containers/containername/start
Ссылочная ссылка - https://docs.docker.com/engine/api/v1.24/