在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。
但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。
示例如下:
docker run --rm ba-208
等价于
docker run --rm=true ba-208
显然,--rm选项不能与-d同时使用(或者说同时使用没有意义),即只能自动清理foreground容器,不能自动清理detached容器。
注意,--rm选项也会清理容器的匿名data volumes。
所以,执行docker run命令带--rm命令选项,等价于在容器退出后,执行docker rm -v。
补充知识:使用docker run --cap-add参数解决权限问题(无法使用gdb调试、无法date -s修改时间)
问题 在docker容器中的centos无法使用gdb调试
ptrace: Operation not permitted
解决方法 参考:点击进入
在docker run 命令中加上参数--cap-add=SYS_PTRACE
docker run --cap-add=SYS_PTRACE ......
更多cap可查看手册
http://man7.org/linux/man-pages/man7/capabilities.7.html
还有不太优雅的做法不建议使用:通过?privileged解决 ?privileged等效于?cap-add=ALL。
类似的问题还有docker机器上不能使用date -s修改时间
解决方式:
docker run --cap-add=SYS_TIME --cap-add=SYS_PTRACE ...
以上这篇docker run的--rm选项使用说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/199967/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)