如何使用docker remote api创建容器?

时间:2015-07-13 11:19:15

标签: docker

我是码头工人的新手。我已经阅读了docker远程API中的tutorial。在创建容器方面。它向我展示了太多的填充物。我想知道什么等同于这个命令:

  

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

我不知道。有人能告诉我吗?谢谢!

3 个答案:

答案 0 :(得分:9)

原始答案(2015年7月):

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

首先创建容器:

//create a gradient palette from green to red using RainbowVis
var rainbow = new Rainbow(); 
rainbow.setNumberRange(1, data.getNumberOfRows());
rainbow.setSpectrum('green', 'red');

//alter the DataTable
data.addColumn( {'type': 'string', 'role': 'style'} );    
for (var i=0;i<data.getNumberOfRows();i++) {
    data.setCell(i, 2, 'point { fill-color:'+rainbow.colorAt(i+1)+'}');
}    

然后开始:

curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2.",}' http://localhost:2376/containers/create?name=registry

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

答案 1 :(得分:4)

或多或少只是复制VonC的答案,以便更新到今天版本的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
  }
}

然后启动它: (参数名称不是必需的,容器名称为注册表 curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start

答案 2 :(得分:1)

在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/