当容器在Python中运行时,在Docker容器外部创建文件

k4aesqcs  于 2023-01-08  发布在  Python
关注(0)|答案(1)|浏览(148)

我目前有一个Python应用程序在Ubuntu 20.04的Docker容器中运行。
在这个Python应用程序中,我希望每隔几分钟创建一个文本文件,以便在Ubuntu服务器上的其他应用程序中使用,但是,我发现从容器化Python应用程序内部创建一个文件并将其保存在服务器上是一个挑战。
应用程序Dockerfile/start.sh/main.py文件驻留在/var/www/my_app_name/中,我希望将www.example.com创建的output.txt文件main.py放在同一个文件夹中,即Dockerfile/main.py源代码的位置。
这个文本文件是用Python中的一行代码创建的:

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

我发现最好的方法是使用一个卷。我当前的docker run是由批处理脚本start.sh调用的,它包括以下行:

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

然而,我没有太多的运气,文件没有创建在www.example.com所在的工作目录中main.py。

2ul0zpep

2ul0zpep1#

绑定挂载是一种可行的方法,您的-v $PWD:/app应该可以工作。
如果运行类似于

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

在当前目录中会得到一个名为hello.txt的文件。
该命令运行一个Alpine映像,将当前目录Map到容器中的/app,然后将“Hello”回显到容器中的/app/hello.txt

相关问题