Python中带有Popen的docker exec命令

Python中带有Popen的docker exec命令,python,docker,Python,Docker,我正在开发一个与docker容器交互的应用程序 我想以容器命令的docker exec name\u方式执行此命令: command=“/usr/bin/balance-b”+ip地址+“5001”+服务器列表 想法是执行一个echo命令>/etc/supervisor/conf.d/supervisord.conf“:stat'/usr/bin/balance-b 195.154.12.1 5001 192.186.13.1'>>/etc/supervisor/conf.d/superviso

我正在开发一个与docker容器交互的应用程序

我想以容器命令的docker exec name\u方式执行此命令:
command=“/usr/bin/balance-b”+ip地址+“5001”+服务器列表

想法是执行一个echo命令 我做了如下尝试:

p=subprocess.Popen(['docker','exec','supervisor','echo','command'],
stdin=子流程.PIPE,
stdout=子流程管道)

但它不起作用

这是错误代码:

exec: "'/usr/bin/balance -b 195.154.12.1 5001 192.186.13.1' >> /etc/supervisor/conf.d/supervisord.conf": stat '/usr/bin/balance -b 195.154.12.1 5001 192.186.13.1' >> /etc/supervisor/conf.d/supervisord.conf: no such file or directory

什么不起作用?该命令看起来应该成功运行“echo command”,但您没有将输出重定向到容器内的文件(您正在使用Python中的输出,您可以通过
p.read()
)获得该输出)。这是错误代码:exec:“'/usr/bin/balance-b 195.154.12.1 5001 192.186.13.1'>>/etc/supervisor/conf.d/supervisord.conf“:stat'/usr/bin/balance-b 195.154.12.1 5001 192.186.13.1'>>/etc/supervisor/conf.d/supervisord.conf:没有这样的文件或目录请发布足够的内容,以便其他人可以重现问题。生成问题的dockerfile和/或脚本就足够了。我无法判断它是否抱怨整个带引号的字符串不是有效的文件名或
/etc/supervisor/conf.d/supervisord.conf
不是有效的文件名。您可以检查容器中是否存在后者,以及代码是否附加到容器中的文件,而不是主机中的文件。再次查看错误代码行,这没有多大意义。这似乎表明您正在运行该字符串,并将执行该字符串的输出重定向到/etc/……/supervisord.conf。但是,本文讨论的是在supervisord.conf的末尾运行一个balance命令,而不是该balance命令的输出。