为了节省服务器空间,我注意到正在运行的容器的尺寸比创建容器所要拉取的映像要小得多。图像上正在运行的容器,如果有可能删除图像而仅保留容器。

#1 楼

Docker容器有2个真正的重点。


您确保在容器内部对应用程序依赖项进行了版本控制和封装
。只要您拥有Docker守护程序,容器就可以在任何地方顺利运行。
您可以随时创建/销毁
容器的能力,也称为临时属性。您可以轻松进行测试,并在需要时维护N个(例如,K8S中的副本集就是这样做的,Docker Swarm也使用服务来维护该数字)。 as


图像是只读模板,其中包含用于创建Docker容器的说明。



您无法删除图片,因为容器依赖它。

docker image rm ubuntu:20.04
Error response from daemon: conflict: unable to remove repository reference "ubuntu:20.04" (must force) - container ecd06b4eb4bf is using its referenced image


那么您可以强制执行该过程

 docker image rm -f ubuntu:20.04
Untagged: ubuntu:20.04
Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Untagged: ubuntu@sha256:8bce67040cd0ae39e0beb55bcb976a824d9966d2ac8d2e4bf6119b45505cee64


但这只是取消标记图像,它仍然在。

docker image ls
REPOSITORY             TAG                                        IMAGE ID            CREATED             SIZE
<none>                 <none>                                     1d622ef86b13        3 weeks ago         73.9MB


因此,对于您的问题,最佳实践是仅删除任何容器未使用的图像。如果您维护2-5个应用程序版本,则可以安全地删除其他版本。同样,您应该努力使每张图像的尺寸最小化,即使总的大小也不会影响您的可用空间。