加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用python脚本控制Docker

发布时间:2020-12-16 03:21:48 所属栏目:安全 来源:网络整理
导读:如python文件 example.py: import oscontainerId = "XXX"command = "docker exec -ti " + containerId + "sh"os.system(command) 当我使用“ python example.py”执行此文件时,我可以输入docker容器,但是我想在docker中执行其他命令. 我尝试了这个: import

如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.非常感谢.

最佳答案
如果可以轻松地预先定义要执行的命令,则可以将它们附加到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)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读