Remote API for docker exec commands

2019-01-27 01:32发布

Could someone please help me with remote api for docker exec to run a command?

I am able to run it directly:

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

标签: docker
2条回答
三岁会撩人
2楼-- · 2019-01-27 02:03

The API section which would help you is: Exec Create/Start

You can see some example in 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, "")
    
查看更多
放我归山
3楼-- · 2019-01-27 02:13

You have to follow below steps. I am adding rest api way. You can code it to any language.

  1. EXEC CREATE

POST /containers/(id or name)/exec

Body

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

You have to select Content-Type: application/json

when you POST the above data you will get id in response. You have to use the id in next step.

*The above will add cron job in container which will execute every five minute.


  1. EXEC START

POST /exec/(id)/start

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

You have to select Content-Type: application/json

Check response code, 200 is OK

查看更多
登录 后发表回答