亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Dockerfile 訪問我的下載文件夾?

如何使用 Dockerfile 訪問我的下載文件夾?

慕沐林林 2022-12-20 16:16:09
我必須按照 Dockerfile 來創建容器映像。這適用于某些腳本。FROM python:3.8-slim-busterCOPY . /workWORKDIR /workRUN apt-get updateRUN apt-get upgrade -yRUN pip install -r requirements.txt但是,我有一個腳本需要訪問我的本地下載文件夾。我的理解是容器使用 Dockerfile 所在目錄的副本創建一個圖像。但是,我不明白如何讓容器訪問我的下載文件夾。任何幫助都會很棒!
查看完整描述

4 回答

?
夢里花落0921

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 相同的文件夾中。干杯!


查看完整回答
反對 回復 2022-12-20
?
小唯快跑啊

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


查看完整回答
反對 回復 2022-12-20
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

出于安裝或共享目的,您可以使用 docker volume 作為 docker 的存儲機制。您應該將文件從主機掛載到容器。

docker run -v [host directory path]:[container directory path] -it [image name]

無論您授予對容器的訪問權限,此命令都會掛載您的主機目錄


查看完整回答
反對 回復 2022-12-20
?
米脂

TA貢獻1836條經驗 獲得超3個贊

您可以將下載文件夾安裝到 Docker 服務假設您已經使用圖像名稱 NAMEOFBUILTDOCKER 構建了服務

docker run -d \
  --name devtest \
  --mount source=pathto/downloads,target=/work \
  NAMEOFYOURBUILTDOCKER

mount 比 —volume 更冗長,但實現相同。這將以分離模式 (-d) 啟動您的服務,名稱為 devtest,下載內容正在運行。


查看完整回答
反對 回復 2022-12-20
  • 4 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號