我是第一次尝试Docker,但还没有"心理模型"。总体初学者。

我正在考虑的所有示例都包括--rm旗帜,例如

docker run -it --rm ...
docker container run -it --rm ...

Question:

为什么这些命令包括--rm旗帜?我认为,如果我要遇到设置或下载带有好东西的容器的麻烦,为什么要删除它?我想让它再次使用。

因此,我知道我对Docker的想法错误。

答案

容器只是您用于运行它们的图像的实例。创建容器化应用程序时的心态不是通过使用新鲜,干净的Ubuntu容器,而是下载您希望拥有的应用程序和配置,然后让它运行。

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

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

运行容器--rm标志对于那些仅在完成某些事情的过程中就非常短的容器很有帮助,例如,将您的应用程序编译在容器中或仅测试其有效的东西,然后您知道它是一个短暂的寿命容器,然后告诉您的Docker守护程序一旦完成运行,就会删除与之相关的所有内容并节省磁盘空间。

来自: stackoverflow.com