簡體   English   中英

Docker Run:掛載卷未顯示文件更改

[英]Docker Run: Mounted Volume not showing change in files

我正在努力運行最新的更改。 以下是詳細信息。

Dockerfile

FROM python:3.7.3

RUN mkdir -p /usr/apps

COPY test.py /usr/apps

RUN pip install mindsdb
CMD [ "python","test.py" ]

建立

docker build -t py37:custom . 

docker run -it -v /Development/PetProjects/mindsdb:/usr/apps/  py37:custom

但是它僅顯示構建時的更改。

首先,在啟動容器時,您不使用卷,而是bind mounts 因此,您將主機上的目錄/Development/PetProjects/mindsdb掛載到/usr/apps/目錄。 在此目錄中,對主機上文件的所有更改將在容器中可見,反之亦然。

如果要使用卷,則可以使用docker volume create命令創建一個docker volume create ,然后使用該卷運行容器docker container run -v volume_name:path_in_container image_name 然后,您可以通過將該卷傳遞給run命令來停止容器並再次運行它,並且可以在容器創建期間存儲對path_in_container目錄的更改。

另一件事是,您嘗試將/usr/apps/掛載到容器中,並使用Dockerfile在其中復制了python腳本。 請注意,在您當前的/Development/PetProjects/mindsdb docker run命令中, /Development/PetProjects/mindsdb 內容將替換容器 /usr/apps/的內容,如果/Development/PetProjects/mindsdb沒有腳本-腳本在容器。

此外,由於路徑相對性,您的CMD似乎不起作用。 您應該將CMD更改為CMD [ "python","/usr/apps/test.py" ]或使用WORKDIR選項WORKDIR /usr/apps/以便可以從此目錄執行python命令,並且腳本在此處可見。

有關卷和綁定掛載之間差異的更多信息,請參閱Docker文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM