繁体   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