2015-07-13 42 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

相關問題