Python 2.7 使用Docker远程API运行exec start时出现错误500
我正在使用和python请求v2.2.1来运行exec语句。这是我正在使用的代码:Python 2.7 使用Docker远程API运行exec start时出现错误500,python-2.7,rest,docker,python-requests,Python 2.7,Rest,Docker,Python Requests,我正在使用和python请求v2.2.1来运行exec语句。这是我正在使用的代码: import requests import json containerName = 'my_container_name' startContainerRequest = requests.post('http://127.0.0.1:4243/containers/' + containerName + '/start') print startContainerRequest.status_code
import requests
import json
containerName = 'my_container_name'
startContainerRequest = requests.post('http://127.0.0.1:4243/containers/' + containerName + '/start')
print startContainerRequest.status_code #result: 204
payload = {'Cmd':["date"]}
headers = {'Content-type': 'application/json'}
execCreateRequest = requests.post('http://127.0.0.1:4243/containers/' + containerName + '/exec', data=json.dumps(payload), headers=headers)
print execCreateRequest.status_code #result: 201
execStartRequest = requests.post('http://127.0.0.1:4243/exec/' + execCreateRequest.json()['Id'] + '/start', headers=headers)
print execStartRequest.status_code #result: 500
print execStartRequest.text #EOF
最后一个REST请求失败。使用相同的id工作,因此id不是问题所在。在有效负载中使用与date不同的命令也会失败。我尝试了不同的容器,但得到了相同的结果。
从码头工厂运行docker exec my_container_name date
以下是我从/etc/default/DOCKER选择的DOCKER\u选项:
DOCKER_OPTS="--dns *privateDNS* --dns 8.8.8.8 -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"
将JSON正文添加到
将JSON正文添加到
将JSON主体添加到
/start
中是否有帮助?是的,这就成功了。它应该是这样工作的,还是RESTAPI中的一个bug?请随意将您的评论转换为答案,我会接受并投票。不确定,可能会在github上创建一个问题进行检查。一些JSON API至少需要{}
才能解析为JSON。将JSON主体添加到/start
中是否有帮助?是的,成功了。它应该是这样工作的,还是RESTAPI中的一个bug?请随意将您的评论转换为答案,我会接受并投票。不确定,可能会在github上创建一个问题进行检查。一些JSON API至少需要{}
,因此它可以解析为JSON。
POST /exec/e90e34656806/start HTTP/1.1
Content-Type: application/json
{
"Detach": false,
"Tty": false
}