如何使用docker远程API来创build容器?

我是docker工人。 我已经阅读了docker远程API中的教程 。 在创build容器方面。 这表明我填补了太多的参数。 我想知道什么是相当于这个命令:

docker运行-d -p 5000:5000 –restart = always –nameregistryregistry:2。

我不知道这件事。 谁能告诉我? 谢谢!

原始答案(2015年7月):

这将是(不直接testing),如本教程 (提供远程API启用 ):

首先创build容器:

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,docker1.13 +看到rocksteady的答案 ,使用类似的想法,但与当前的引擎/ API / V1.26 。

或多或less只是复制VonC的答案,以更新到今天版本的docker( 1.13 )和docker远程API版本( v1.26 ) 。

有什么不同吗:

  • 所有configuration需要在创build容器时完成,否则以VonC的方式启动容器时会返回以下错误消息。 {"message":"starting container with non-empty request body was deprecated since v1.10 and removed in v1.12"}

首先创build容器:( 包括所有的configuration) 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 } } 

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