4 回答

TA贡献1772条经验 获得超6个赞
您可以采取两种方式:
给它一个体积(推荐)
更改构建上下文(只是为了更好地理解它)
添加卷:
在构建 Dockerfile 之后。您可以使用卷运行它。将卷视为主机和容器之间的共享文件夹。您可以在此处查看文档。
docker run [OPTIONS] -v /path/to/downloads:/work
它将快速构建并快速运行。但是,如果您的文件夹发生变化,您的容器也会发生变化。如果你想持久化你的容器;
更改构建上下文:
当你建立你的形象时,你就是在给它一个背景。
docker build -t my-tag .
命令末尾的点表示您运行命令的当前目录。如果您想将/Downloads
文件夹提供给上下文,则需要运行如下构建函数。之后,您可以COPY Downloads/ Downloads/
在 Dockerfile 中声明。请记住,Dockerfile 中使用本地文件系统的所有路径都是相对于构建上下文的。对于下面的示例,如果您想COPY . /work
在答案中执行一行,则需要将其更改为COPY /path/to/your/docker/file/ /work
# Go to your users root directory.
cd ~/
# This will add all of the folders including Downloads to your build context.
docker run build -t my-tag -f /path/to/your/docker/file/Dockerfile .
请记住,建议您的构建上下文尽可能小。当您将所有文件夹添加到构建上下文时,它会很慢。正如我所说,这是为了实验。但是,如果您真的想要一个快速且持久的解决方案,只需将 /Download 文件夹复制到与 Dockerfile 相同的文件夹中。干杯!

TA贡献1863条经验 获得超2个赞
我有一个使用 docker-compose 的解决方案
docker-compose
version: "3"
services:
myservice:
build:
context: . # DOT (".") means in this root directory, have a dockerfile to build the image
image: myDownloadAppBuild:latest
container_name: myDownloadApp
volumes:
- <HOST-MACHINE-DIR-PATH>:/app # HOST_MACHINE-DIR-PATH E:/MyDownload AND /app path inside container which points to your download folder.
ports:
- <HOST-PORT-ID>:<CONTAINER-PORT-ID>
文件
FROM python:3.8-slim-buster
COPY . /work
WORKDIR /work
VOLUME /app #YOUR DOWNLOAD DIR PATH
RUN apt-get update
RUN apt-get upgrade -y
RUN pip install -r requirements.txt
或者您已经有执行此操作的命令式命令
docker run <OTHER OPTIONS> -v /path/to/downloads:E:/myAppDownloadMount

TA贡献1807条经验 获得超9个赞
出于安装或共享目的,您可以使用 docker volume 作为 docker 的存储机制。您应该将文件从主机挂载到容器。
docker run -v [host directory path]:[container directory path] -it [image name]
无论您授予对容器的访问权限,此命令都会挂载您的主机目录

TA贡献1836条经验 获得超3个赞
您可以将下载文件夹安装到 Docker 服务假设您已经使用图像名称 NAMEOFBUILTDOCKER 构建了服务
docker run -d \ --name devtest \ --mount source=pathto/downloads,target=/work \ NAMEOFYOURBUILTDOCKER
mount 比 —volume 更冗长,但实现相同。这将以分离模式 (-d) 启动您的服务,名称为 devtest,下载内容正在运行。
添加回答
举报