Как использовать 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/

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