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,下載內容正在運行。
添加回答
舉報