首页 > 解决方案 > 在 Docker 容器中运行的 Python 脚本未将文件保存到正确的路径

问题描述

我有一个在 docker 容器(在 Ubuntu 18.04 上)内运行的 python Flask 应用程序,它应该将文件保存到本地 Ubuntu 目录。另一个功能是读取这些文件。例如,目录可以是 /$USER/home 或 /root 等。

我尝试过使用“docker run”命令的不同变体。似乎远程正常工作的一个是以下一个。

docker run --privileged -v /dev/bus/usb:/dev/bus/usb -v ~/:/home -i -t --network=host mobile-forensics:latest

我保存文件的python函数如下。

def save_file(path):
    if not os.path.exists(path):
        os.makedirs(path)

读取文件的函数如下。

def read_file(path):
    with open(path, 'r') as stream:
     for line in stream:
         print(line)

问题是该应用程序应该将文件保存在代码中指定的路径中,但它却将它们保存在不正确的路径中。例如,如果我将路径指定为“/home”,而不是将文件保存在“/home”,应用程序会将它们保存在诸如

“/var/lib/docker/overlay2/ee1c3c4947043a1475e41d93fdbcc2cbb76c34aa49a42d108ac743921ce36b6f/diff/home/...”

读取文件时,同样的问题很普遍。该应用程序没有从正确的路径读取它们。我将不胜感激有关此问题的任何帮助。

标签: pythondockerubuntu

解决方案


推荐阅读