import os
containerId = "XXX"
command = "docker exec -ti " + containerId + "sh"
os.system(command)
当我使用“ python example.py”执行此文件时,我可以输入docker容器,但是我想在docker中执行其他命令.
我尝试了这个:
import os
containerId = "XXX"
command = "docker exec -ti " + containerId + "sh"
os.system(command)
os.system("ps")
但是ps只能在我退出docker容器后在docker外部执行,而不能在docker内部执行.
所以我的问题是如何使用python shell在docker容器内执行命令.
顺便说一句,我正在使用python2.7.非常感谢.
最佳答案
@H_502_29@如果可以轻松地预先定义要执行的命令,则可以将它们附加到docker run命令,如下所示:
docker run --rm ubuntu:18.04 /bin/sh -c "ps"
现在,如果您已经有一个正在运行的容器,例如
docker run -it --rm ubuntu:18.04 /bin/bash
然后,您可以对docker exec执行相同的操作:
docker exec ${CONTAINER_ID} /bin/sh -c "ps"
现在,在python中这可能看起来像这样:
import os
containerId = "XXX"
in_docker_command = "ps"
command = 'docker exec ' + containerId + ' /bin/sh -c "' + in_docker_command + '"'
os.system(command)