【问题标题】:How to use docker remote api to create container?如何使用 docker remote api 创建容器?
【发布时间】:2015-07-13 11:19:15
【问题描述】:

我是 docker 新手。我已经阅读了 docker remote API 中的tutorial。在创建容器方面。它向我展示了太多无法填充的参数。我想知道这个命令相当于什么:

docker run -d -p 5000:5000 --restart=always --name 注册表 注册表:2。

我对此一无所知。谁能告诉我?谢谢!

【问题讨论】:

    标签: docker


    【解决方案1】:

    原始答案(2015 年 7 月):

    那将是(未直接测试),如in this tutorial(提供remote API is enabled):

    首先创建容器:

    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
    

    2017 年 2 月更新,对于 docker 1.13+,请参阅 rocksteadyanswer,使用类似的想法,但使用当前的 engine/api/v1.26

    【讨论】:

    • 谢谢你的回答,我成功了。
    • 我在java中使用HttpClient连接api,添加你显示的参数,它返回错误“无效字符'我'正在寻找值的开头”,为什么?我更新了我的问题。
    • @v11 考虑到您提到您之前已经成功,您能提出一个新问题吗?这将允许其他人将其用于卷曲。它最初没有提到 java API。
    【解决方案2】:

    或多或少只是复制VonCs 的答案,以便更新到docker (1.13)docker remote api version (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不是必须的,容器只是命名为registry curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start

    【讨论】:

    • 首先是有用的答案。
    【解决方案3】:

    在 Docker Engine v1.24 中创建 docker 容器

    执行发布请求 -

     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
    }
    

    它会创建你的 docker 容器

    启动容器

    执行 POST 请求

    curl -X POST  http://DOCKER_SERVER_HOST:DOCKER_PORT/v1.24/containers/containername/start
    

    参考链接 - https://docs.docker.com/engine/api/v1.24/

    【讨论】:

      猜你喜欢
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      相关资源
      最近更新 更多