例如python文件 example.py:
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。非常感谢。
答案 0 :(得分:2)
如果可以轻松地预先定义要执行的命令,则可以将它们附加到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)