python - 如何使用 docker 创建应用程序并仍在主机上运行 psutil?
问题描述
对不起,我对 Python 还是很陌生。我正在通过 Docker 创建一个应用程序,该应用程序监视计算机上运行的某个应用程序的 cpu 使用情况,它使用 psutil。但是,当我运行应用程序时,它不起作用,因为它使用 Docker 容器系统等。我想知道这是否可能?这是我的 Dockerfile,我正在使用 mac。我已经阅读了有关安装的信息,但我真的不明白如何去做。
FROM python:3.9
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt .
WORKDIR /
RUN pip3 install -r requirements.txt
COPY . /
CMD ["python", "app/dbfile.py" ]
解决方案
您需要直接在主机系统上运行此工具,也许是在 Python 虚拟环境中。你不能在 Docker 中运行它,尤其是在 MacOS 上。
Docker 容器通常旨在与其主机系统隔离。在容器中运行的进程无法看到自己容器外的进程,因此主机进程监控工具无法看到它需要监控的主机进程。在 MacOS 上,这是双重事实,因为容器在隐藏的 (Linux) 虚拟机中运行;即使您可以禁用 Docker pid 命名空间,您仍然无法在 VM 外部看到要监控 (MacOS) 主机进程。
推荐阅读
- python - 从 API GET 字符串中提取值
- html - 如何在fabricjs中检索文本数据?
- python - PyCharm 将多个 df 导出到单个 csv 文件
- arrays - Xamarin.Forms:从响应中解析数组值并将其显示在 UI 中
- javascript - 从没有父键的其他对象数组中的对象中删除父键
- aem - 如何使页脚组件在 AEM 中的整个站点中保持不变?
- regex - 如何使用正则表达式扫描在 .c 文件中定义具有初始大写卡梅尔案例名称的静态变量的代码行?
- angular - 如何创建一条从 x,y 坐标开始到其他 x,y 坐标的线?
- php - 使用 laravel 插入当前日期时间
- javascript - 在反应生命周期中等待 Redux thunk