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