【问题标题】:Create a file outside of Docker container while container is running in Python当容器在 Python 中运行时,在 Docker 容器外部创建一个文件
【发布时间】:2023-01-07 23:20:23
【问题描述】:

我目前有一个 Python 应用程序在 Ubuntu 20.04 上的 Docker 容器中运行。

在这个 Python 应用程序中,我想每隔几分钟创建一个文本文件,以便在 Ubuntu 服务器上的其他应用程序中使用。但是,我发现从容器化 Python 应用程序内部创建文件并将其保存在服务器上具有挑战性。

应用程序 Dockerfile/start.sh/main.py 文件位于 /var/www/my_app_name/ 中,我希望 main.py 在同一文件夹中创建 output.txt 文件,即 Dockerfile/main 的位置。源码。

文本文件是使用简单的一行在 Python 中创建的:

text_file = open("my_text_file.txt", "wt")

我已经看到执行此操作的最佳方法是使用卷。我当前的 docker run 由批处理脚本 start.sh 调用,包括以下行:

docker run -d --name=${app} -v $PWD:/app ${app}

但是我运气不好,文件没有在 main.py 所在的工作目录中创建。

【问题讨论】:

    标签: python docker


    【解决方案1】:

    绑定安装是可行的方法,您的-v $PWD:/app 应该可以工作。

    如果你运行这样的命令

    docker run --rm -v $PWD:/app alpine /bin/sh -c 'echo Hello > /app/hello.txt'
    

    您将在当前目录中获得一个名为hello.txt 的文件。

    该命令运行一个 Alpine 图像,将当前目录映射到容器中的/app,然后将“Hello”回显到容器中的/app/hello.txt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 2023-02-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      相关资源
      最近更新 更多