Remote API for docker exec commands

前端 未结 2 1546
青春惊慌失措
青春惊慌失措 2020-12-20 01:20

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          


        
相关标签:
2条回答
  • 2020-12-20 02:03

    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

    0 讨论(0)
  • 2020-12-20 02:10

    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, "")
      
    0 讨论(0)
提交回复
热议问题