首页 > 解决方案 > 如何使用 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" ]

标签: pythondockerpsutil

解决方案


您需要直接在主机系统上运行此工具,也许是在 Python 虚拟环境中。你不能在 Docker 中运行它,尤其是在 MacOS 上。

Docker 容器通常旨在与其主机系统隔离。在容器中运行的进程无法看到自己容器外的进程,因此主机进程监控工具无法看到它需要监控的主机进程。在 MacOS 上,这是双重事实,因为容器在隐藏的 (Linux) 虚拟机中运行;即使您可以禁用 Docker pid 命名空间,您仍然无法在 VM 外部看到要监控 (MacOS) 主机进程。


推荐阅读