我想使用Flask Web服务器中的Python子进程模块获取命令docker ps -a --format '{{json .}}'
的输出
但我得到以下错误"docker ps" accepts no arguments
使用docker ps -a
命令时有效,但使用docker ps -a --format '{{json .}}'
命令时失败
这里是代码
@app.route('/get_docker_container_details', methods=['GET'])
def get_docker_container_details():
command = "docker ps -a --format '{{json .}}'"
cmd = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = cmd.communicate()
logger.info(output)
logger.info(error)
return Response()
字符串
这是日志
INFO:automater_agent:b''
INFO:automater_agent:b'"docker ps" accepts no arguments.\nSee \'docker ps --help\'.\n\nUsage: docker ps [OPTIONS]\n\nList containers\n'
INFO:werkzeug:172.23.100.228 - - [08/Jan/2024 12:09:51] "GET /get_docker_container_details HTTP/1.1" 200 -
型
终端中的命令运行正常。但Flask服务器中出现错误
那么如何解决呢?
谢谢.
1条答案
按热度按时间4ngedf3f1#
应当
字符串
如果我们拆分列表,列表变成
['docker', 'ps', '-a', '--format', "'{{json", ".}}'"]
,这使得'.}}'成为位置参数。而docker ps不接受位置参数。谢谢@KlausD.和@zvone