Docker卷挂载疑问:容器非挂载目录数据为何能持久化?
问题解答
- Docker容器的文件系统分为三个部分:镜像只读层、容器可写层、独立挂载卷。
- 你挂载的
myVolume仅负责持久化/home目录的数据,但容器内其他未挂载卷的目录(比如/var)的修改,会被存在容器自身的可写层里。 - 关闭并重启容器时,容器的可写层不会被删除,所以你在
/var下创建的文件夹会保留。只有当你删除这个容器(执行docker rm myContainer),对应的可写层才会被清理,下次重新创建容器时,/var就会回到镜像的初始状态。 - 如果想要容器停止后自动清理可写层,启动容器时可以添加
--rm参数,示例命令:
这样容器停止后会自动被删除,下次启动就是全新的容器实例。docker run -d --rm --name myContainer --mount source=myVolume,target=/home -ti some_image
内容的提问来源于stack exchange,提问作者ailauli69
相关产品推荐
相关产品推荐

