Как использовать Docker Remote API для создания контейнера?
Я новичок в докере. Я прочитал учебник в Docker удаленного API . В аспекте создания контейнера. Это показывает мне слишком много параметров для заполнения. Я хочу знать, что эквивалентно этой команде:
docker run -d -p 5000: 5000 --restart = всегда - имя реестра реестра:2.
Я понятия не имею об этом. Кто-нибудь может сказать мне? Спасибо!
2 ответа
Оригинальный ответ (июль 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+ см. Ответ rockteady, используя аналогичную идею, но с текущим движком / api / v1.26.
Более или менее просто скопируйте ответ VonC, чтобы обновить текущую версию Docker (1.13) и Docker Remote 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
}
}
Затем запустите его: (имя параметра не обязательно, контейнер просто с именем реестра)
curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start
Создать 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/