我正在努力运行最新的更改。下面是详细信息。
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
但是它仅显示构建时的更改。
答案 0 :(得分:2)
首先,在启动容器时,您没有使用卷,而是使用bind mounts
。因此,您将主机上的目录/Development/PetProjects/mindsdb
挂载到/usr/apps/
目录中。在此目录中,对主机上文件的所有更改将在容器中可见,反之亦然。
如果要使用卷,可以使用docker volume create
命令创建一个,然后使用以下卷运行容器:docker container run -v volume_name:path_in_container image_name
。然后,您可以通过将该卷传递给run命令来停止容器并再次运行它,并且可以在容器创建期间存储对path_in_container
目录的更改。
另一件事是,您尝试将/usr/apps/
挂载到容器中,并使用Dockerfile在其中复制了python脚本。请注意,在您的docker run
当前的/Development/PetProjects/mindsdb
命令内容中,将替换容器中 /usr/apps/
的内容,如果您的脚本不在{{1} }-脚本在容器中不可见。
此外,由于路径的相对性,您的/Development/PetProjects/mindsdb
似乎不起作用。您应该将CMD更改为CMD
或使用CMD [ "python","/usr/apps/test.py" ]
选项-WORKDIR
,以便可以从此目录执行python命令,并在该目录中看到脚本。
有关卷和绑定安装之间差异的更多信息,请参见docker documentation。