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

v11*_*v11 12 docker

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

docker run -d -p 5000:5000 --restart = always --name registry registry:2.

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

Von*_*onC 9

原始答案(2015年7月):

这将是(未直接测试),如本教程(如果启用远程API):

首先创建容器:

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

然后开始吧:

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
Run Code Online (Sandbox Code Playgroud)

更新二月E017,为搬运工1.13+看慢拍摇滚乐答案,使用类似的想法,但与目前的发动机/ API/v1.26.


roc*_*ady 5

或多或少只是复制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
  }
}
Run Code Online (Sandbox Code Playgroud)

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