docker 如何提供从绑定目录到程序的文件路径
how to provide file path from binded directory to program in docker
我有一个 python 代码,适用于文件。它读取文件,做一些事情等等。
作为程序的输入,您必须提供文件路径。
这是一个问题。在我 dockerize 我的程序后,它如何从主机系统(容器外)找到文件?
我读过我必须将该主机目录与容器绑定。我想我可以处理 docker 文件的创建。我的问题比较简单。如何将文件从绑定目录传递到 docker 文件。如果我绑定 "C:\user\desktop\test\"
目录,然后,如果我使用 "C:\user\desktop\test\test.file"
参数 运行 docker 文件,这会起作用吗?或者我是否必须(以某种方式)表明所选目录在容器之外?大多数教程都告诉您必须绑定目录,但我找不到有关如何实际使用绑定目录中的文件的信息。
如果要将文件复制到 Docker 图像中,因为它不会在程序使用期间更改,请使用 Dockerfile
中的 COPY
命令:
COPY path/to/file/on/host path/to/file/in/image
但您似乎想在 运行 时动态设置文件路径。在这种情况下,不要复制 Dockerfile
中的文件或路径。相反,使用 docker-compose.yml
到 运行 使用 Dockerfile
:
构建的图像
version: '3.7'
services:
app:
build:
context: .
volumes:
- type: bind
source: ./path/to/folder/containing/file
target: /path/the/file/will/have/in/container
我有一个 python 代码,适用于文件。它读取文件,做一些事情等等。
作为程序的输入,您必须提供文件路径。
这是一个问题。在我 dockerize 我的程序后,它如何从主机系统(容器外)找到文件?
我读过我必须将该主机目录与容器绑定。我想我可以处理 docker 文件的创建。我的问题比较简单。如何将文件从绑定目录传递到 docker 文件。如果我绑定 "C:\user\desktop\test\"
目录,然后,如果我使用 "C:\user\desktop\test\test.file"
参数 运行 docker 文件,这会起作用吗?或者我是否必须(以某种方式)表明所选目录在容器之外?大多数教程都告诉您必须绑定目录,但我找不到有关如何实际使用绑定目录中的文件的信息。
如果要将文件复制到 Docker 图像中,因为它不会在程序使用期间更改,请使用 Dockerfile
中的 COPY
命令:
COPY path/to/file/on/host path/to/file/in/image
但您似乎想在 运行 时动态设置文件路径。在这种情况下,不要复制 Dockerfile
中的文件或路径。相反,使用 docker-compose.yml
到 运行 使用 Dockerfile
:
version: '3.7'
services:
app:
build:
context: .
volumes:
- type: bind
source: ./path/to/folder/containing/file
target: /path/the/file/will/have/in/container