我使用以下内容运行nginx的docker容器:docker container run -d --name nginx3 -p 85:80 -v $(pwd):/usr/share/nginx/html nginx
,然后当我在容器卷(/usr/share/nginx/html)中添加文件时,它们也被本地添加到$pwd文件夹中。
但是当我用docker rm -vf $(docker ps -aq) && docker rmi -f $(docker images -aq) && docker volume prune
删除容器、图像和卷时,本地$pwd文件夹上的文件仍然存在。为什么当我删除卷的时候它们不被删除?
发布于 2022-04-10 23:03:38
这是因为对接卷剪裁,删除对接卷,而不是从主机挂载卷。
如果使用docker volume create nginx_volume
定义卷,然后使用
docker container run -d --name nginx3 -p 85:80 -v nginx_volume:/usr/share/nginx/html nginx
卷将被删除
发布于 2022-04-10 23:05:54
您不是使用停靠器卷,而是使用绑定挂载。这一点在-v
语法中并不那么清楚,这就是为什么docker为新用户推荐新的--mount
语法:
这将从主机OS创建绑定挂载。Docker不是它的所有者,因此如果卸载绑定,就不会删除该文件夹。
docker run -d \
-it \
--name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
nginx:latest
这将创建一个由停靠者管理的停靠器卷。因此,可以应用所有卷命令:
docker run -d \
--name devtest \
--mount source=myvol2,target=/app \
nginx:latest
https://stackoverflow.com/questions/71823720
复制