docker run的--rm选项使用说明

时间:2021-05-19

在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选项使用说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章