Docker exec bash -c 利用详解与 Python 封装示例

农民  论坛元老 | 2024-10-8 09:03:34 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1587|帖子 1587|积分 4761

简介:docker exec 是 Docker 的一个实用命令,允许在正在运行的容器中实验命令。通过 bash -c 选项,可以实验复杂的命令串。
汗青攻略:
go:远程实验系统命令
Python:subprocess模块
Python-subprocess激活远程conda
利用 docker exec bash -c 的利益:

  • 灵活实验: 允许在容器内实验复杂命令或脚本。
  • 便捷调试: 快速在容器内验证和调试配置。
  • 不干扰主历程: 在容器内运行命令而不会影响主历程。
  • 服从提升:无需进入容器即可直接实验命令。
  • 自定义扩展: 封装脚本支持灵活自定义和扩展。
案例源码:
  1. # -*- coding: utf-8 -*-
  2. # time: 2024/09/03 20:37
  3. # file: bash_command.py
  4. # author: tom
  5. # 微信公众号: 玩转测试开发
  6. import subprocess
  7. def execute_in_container(container_name: str, command: str) -> None:
  8.     """
  9.     在指定的 Docker 容器内执行命令。
  10.     :param container_name: 容器名称或 ID
  11.     :param command: 要执行的命令
  12.     """
  13.     full_command = ["docker", "exec", container_name, "bash", "-c", command]
  14.     try:
  15.         # 执行命令并获取输出
  16.         result = subprocess.run(full_command, check=True, text=True, capture_output=True)
  17.         print(f"命令输出:\n{result.stdout}")
  18.     except subprocess.CalledProcessError as e:
  19.         print(f"命令执行失败:\n{e.stderr}")
  20. if __name__ == "__main__":
  21.     # 示例调用
  22.     execute_in_container("mydocker_command", "echo 'Hello, Docker!'")
  23.     execute_in_container("mydocker_command", "cd /home && touch aaa.txt && ls -al /home/")
复制代码
运行效果:
  1. # python main.py
  2. 命令输出:
  3. Hello, Docker!
  4. 命令输出:
  5. total 8
  6. drwxr-xr-x 1 root root 4096 Sep  3 16:58 .
  7. drwxr-xr-x 1 root root 4096 Sep  3 16:57 ..
  8. -rw-r--r-- 1 root root    0 Sep  3 16:59 aaa.txt
复制代码
留意事项:
1、确保容器名称或 ID 精确且容器正在运行。
2、实验的命令需审慎,避免实验不安全的命令。
3、确保容器内的用户具有实验命令的权限。
4、命令需与容器内的操作系统和环境兼容。
5、处理命令实验错误并获取详细信息以帮助排错。
小结:通过上述 Python 封装,可以更加灵活地在 Docker 容器中实验命令,提升操作的服从和便捷性。

在这里插入图片形貌](https://i-blog.csdnimg.cn/direct/36417af5f5504d8b9a668c4a3c6dda61.png)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表