今天在看docker的相关书籍,看到了docker run --rm这个选项:

1. 在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。

但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。示例如下:

docker run --rm  --name=test1 alpine

docker run 加上--rm退出容器以后,这个容器就被删除了,方便在临时测试使用。

不加--rm 退出容器后,容器只是停止运行,数据任然被保留。 不过容器内数据卷的内容不会被删除。

但是,--rm选项不能与-d同时使用(或者说同时使用没有意义),即只能自动清理foreground容器,不能自动清理detached容器。

2. 删除数据卷

数据卷是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷。如果需要在删除容器的同时移除数据卷。

可以在删除容器的时候使用 docker rm -v 这个参数。

docker rm -v XXX   --用于删除数据卷

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐