如何删除现有的容器安装?

我正在学习docker并阅读他们的章节“pipe理容器中的数据”。 在“将主机目录挂载为数据卷”中。 他们提到以下段落:

除了使用-v标志创build卷之外,还可以将Docker引擎主机的目录挂载到容器中。

$ docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py 

该命令将主机目录/ src / webapp安装到/ opt / webapp的容器中。 如果path/ opt / webapp已经存在于容器的映像中,那么/ src / webapp挂载会覆盖,但不会删除原有的内容。 一旦挂载被删除,内容可以再次访问。 这与mount命令的预期行为一致。

实验1

然后,当我试图运行这个命令,并试图检查容器,我发现,实际上容器甚至不运行。 然后我使用docker logs web并find这个错误:

无法打开文件“app.py”:[Errno 2]没有这样的文件或目录我假设/ src / webapp挂载覆盖/ opt / webapp,没有内容。

问题1如何删除此挂载并检查内容是否仍然存在?

实验2

当我试图运行$ docker run -d -P -name web2 -v newvolume:/ opt / webapp training / webapp python app.py我发现容器运行正常。 然后,我使用docker exec -it web2 /bin/bash并发现所有现有的内容仍在/ opt / webapp中。 我也可以在这里添加更多的文件。 所以在这种情况下,看起来音量不是叠加的,而是结合在一起的。 如果我使用docker inspect web并检查Mounts,那么我将看到该卷是在/ var / lib / docker / volumes / newvolume / _data下创build的

问题2如果我给一个名称而不是一个主机目录的绝对path,那么卷不会覆盖容器目录/ opt / webapp,但将两个目录连接在一起?