[英]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.