docker run:为什么要使用--rm(docker newbie)

mat*_*nts 72 docker docker-container

我是第一次尝试码头工作,还没有"心理模型".初学者总数.

我正在查看的所有示例都包含要运行的-rm标志,例如

docker run -it --rm ...
docker container run -it --rm ...
Run Code Online (Sandbox Code Playgroud)

我的问题:为什么"--rm".我想如果我设置或下载容器中有好东西的麻烦,为什么要删除它,我想让它再次使用.

所以,我知道我对码头有错误的想法.

bud*_*123 64

容器只是用于运行它们的映像的实例.创建容器化应用程序时的心态不是通过采用一个新的,干净的ubuntu容器,并下载您希望在其中的应用程序和配置,然后让它运行.

您应该将容器视为应用程序的实例,但应用程序嵌入到图像中.正确的用法是创建一个自定义图像,您可以将所有文件,配置,环境变量等嵌入到图像中.阅读有关Dockerfile的更多信息以及如何在此处完成

完成后,您将拥有一个包含所有内容的图像,并且为了使用您的应用程序,您只需使用正确的端口设置或其他动态变量运行图像, docker run <your-image>

运行带有--rm标志的容器对于那些用于非常短暂而只是为了完成某些事情的容器是有好处的,例如,在容器内编译应用程序,或者只测试它工作的东西,然后你知道它是一个短暂的容器而你告诉你的Docker守护进程一旦完成运行,擦除与之相关的所有内容并保存磁盘空间.


小智 14

来自https://docs.docker.com/engine/reference/run/#clean-up---rm

默认情况下,即使容器退出后,容器的文件系统也会保留。这使调试容易得多(因为您可以检查最终状态),并且默认情况下保留所有数据。但是,如果您正在运行短期前台进程,那么这些容器文件系统确实会堆积起来。相反,如果您希望Docker自动清理容器并在容器退出时删除文件系统,则可以添加--rm标志

简而言之:从停止和未使用的容器中保持主机清洁很有用。


小智 11

--rm当您需要在完成容器的任务后删除该容器时,可以使用该标志。

这适用于小型测试或POC,并节省了打扫房间的麻烦。