Skip to main content
 首页 » 编程设计

python之如何使用 python 脚本控制 docker

2024年11月24日29over140

比如python文件 例子.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。非常感谢。

请您参考如下方法:

如果你想执行的命令可以很容易地预先定义,那么你可以将它们附加到 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) 

如果您不想安装外部依赖项(例如 docker-py),此解决方案很有用。正如 @Szczad 所建议的那样