我正在接触容器和 Docker。在 Docker 的世界(或者一般的容器世界)中,我试图理解“删除容器”的含义。我对容器的心智模型是它是图像的运行实例。如果容器停止执行,它消耗了哪些资源需要释放?我可以理解删除关联的图像,因为它们消耗磁盘空间。也许我将容器视为“图像的运行实例”的心理模型不正确,而且还有更多内容。如果有人能提供一些线索,我将不胜感激。
你快到了。在 Docker 中,当容器运行时,docker 守护进程使用 unionfs 挂载镜像层。它在图像层之上添加了一个层来跟踪该容器内部发生的更改。假设写入的日志文件作为该层的一部分进行跟踪。
通过删除容器,您可以删除用于跟踪容器在映像之上所做的这一层更改的资源。
当容器运行时,它会消耗与该层相关的 CPU、内存和 HDD 空间。
当容器停止时,CPU和内存被释放,但HDD空间仍然被使用。(您可以使用 检查停止的容器docker ps -a;这将显示所有状态下的所有容器)
当删除停止的容器时,HDD 空间也会被释放。当您删除容器时,Docker 还会删除与容器关联的所有元数据(启动时间、文件位置等)。
要获得更多乐趣,请执行以下操作:
docker inspect <image_name>:<tag>并查看其输出。
docker inspect <containerid>并查看其输出,这里的containerid应该是运行上面图像的容器。看看您是否可以找出图层并将它们跨图像和容器交叉关联。
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |