将文件从Python脚本保存到Docker Container

Jon*_*han 6 python docker docker-compose

我在Docker容器中有一个简单的Python脚本:

- 调用外部API

- 从API返回许可证文件

我希望能够将返回的许可证文件保存到docker容器内的目录中.

这就是我所做的:

r = requests.post("http://api/endpoint", headers=headers, data=data, auth=("", "")
f = open('test.lic', 'w+')
f.write(r.content)
f.close()
Run Code Online (Sandbox Code Playgroud)

我的理解是,这将创建一个test.lic文件,如果一个文件尚不存在,或打开现有test.lic文件,并将请求对象的内容写入test.lic.但这不起作用.没有文件保存到Docker容器内的目录中.如果我从python shell运行这些行,它可以工作,所以我猜它与Docker容器内部有关.

sam*_*tav 5

可能是文件正在保存,但它位于容器的工作目录中。

搬运工文档说:

在容器中运行二进制文件的默认工作目录是根目录 ( /),但开发人员可以使用 DockerfileWORKDIR命令设置不同的默认值。

因此该文件可能最终位于/容器的根目录中。

您可以添加printos.getcwd(),以你的脚本(如果你能看到的输出...您可能需要使用docker logs命令),以验证这一点。无论哪种方式,文件都可能位于os.getcwd().

  • 或者只是运行 `docker diff` 来查看是否有任何内容被写入文件系统(但不会在卷上工作)。 (2认同)