docker exec命令的远程API

时间:2016-04-29 05:19:59

标签: docker

有人可以帮助我使用远程api来为docker exec运行命令吗?

我可以直接运行它:

# docker exec 941430a3060c date
Fri Apr 29 05:18:03 UTC 2016

2 个答案:

答案 0 :(得分:1)

可以帮助您的API部分是:Exec Create/Start

您可以在integration-cli/docker_api_exec_test.go

中看到一些示例
  • create

    sockRequest("POST", fmt.Sprintf("/containers/%s/exec", name), map[string]interface{}{"Cmd": []string{"true"}})
    
  • start

    sockRequestRaw("POST", fmt.Sprintf("/exec/%s/start", id), strings.NewReader(`{"Detach": true}`), "application/json")
    
  • inspect

    sockRequestRaw("GET", fmt.Sprintf("/exec/%s/json", id), nil, "")
    

答案 1 :(得分:1)

您必须按照以下步骤操作。我正在添加休息api方式。您可以将其编码为任何语言。

  1. EXEC CREATE
  2.   

    POST / containers /(id或name)/ exec

    {
      "AttachStdin": false,
      "AttachStdout": true,
      "AttachStderr": true,
      "Cmd": ["bash","-c","echo '*/5 * * * * /usr/bin/php /app/yii cronrun/job001'>> /var/spool/cron/crontabs/root"]
    }
    

    您必须选择Content-Type: application/json

    当你发布上述数据时,你会得到id作为回应。您必须在下一步中使用该ID。

    *以上将在容器中添加cron作业,每隔五分钟执行一次。

    1. EXEC START
    2.   

      POST / exec /(id)/ start

      {
       "Detach": false,
       "Tty": false
      }
      

      您必须选择Content-Type: application/json

      检查响应代码,200就可以了