2015-07-13 196 views
12

我是新来的码头工人。我已经阅读了Docker远程API中的tutorial。在创建容器方面。它显示我有太多的参数要填写。我想知道什么就相当于这个命令:如何使用docker remote api创建容器?

搬运工运行-d -p 5000:5000 --restart =总是--name注册表 注册表:2。

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

回答

9

原来的答复(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 

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

+0

谢谢您的回答,我有成功。 – v11

+0

我在java中使用HttpClient来连接API,添加你显示的参数,它返回有关“无效字符”的错误,我正在寻找值的开始“,为什么?我更新我的问题。 – v11

+0

@ v11考虑到你提到你已经成功了,你能否提出一个新的问题?这将允许其他人使用这个卷曲。它最初没有提到java API。 – VonC

3

或多或少只是复制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

+1

很好的更新到我以前的答案。+1 – VonC

+0

首先有用的答案。 – rocksteady

相关问题