加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如果Docker中的图像没有标记,它们是否全部使用或只是孤儿?

发布时间:2020-12-16 03:53:08 所属栏目:安全 来源:网络整理
导读:运行命令docker images和docker images -a会产生以下输出: $docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 14.04 9cbaf023786c 2 days ago 192.8 MB$docker images -aREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 14.04 9cbaf0

运行命令docker images和docker images -a会产生以下输出:

$docker images
REPOSITORY           TAG        IMAGE ID            CREATED         VIRTUAL SIZE
ubuntu               14.04      9cbaf023786c        2 days ago      192.8 MB
$docker images -a
REPOSITORY           TAG        IMAGE ID            CREATED         VIRTUAL SIZE
ubuntu               14.04      9cbaf023786c        2 days ago      192.8 MB

图像是否标记为< none>有意义吗?如果没有:为什么他们带有我拉的标记图像?尺寸加起来还是仅仅是一种复制?如果是这样,我可以删除它们而不影响我的工作吗?

最佳答案
图像文件是独立的,并通过unionfs magic组合形成一个运行容器.
您关注的图像通常标有令人难忘的名称.
您可以删除未使用的图像,即那些对您关心的任何图像没有贡献的图像.我在bash中这样做:

function docker_rm_unnamed_images {
  sudo docker rmi $(sudo docker images | grep '^

您可以将docker图像视为“图层”堆栈.每个Dockerfile命令都会向图像添加一个附加层.重要的是要意识到每个命令都会创建一个单独的图像文件.所以Dockerfile

FROM foo
RUN a
RUN b
RUN c

将是一堆

image=1 (possibly pulled from the foo registry)
image=2 (after applying a to image 1)
image=3 (after applying b to image 2)
image=4 (after applying c to image 3)

foo图像可能由多个其他图层组成,因此您的最终图像是4个或更多图像的堆叠.每个图像文件都存在于docker镜像注册表中.其中大多数都是未命名的,因为它们对应于例如RUN命令.每个图像文件1-4可能相当小(除非它们对应于例如yum install p1 ..p100).它们一起构成了最终运行的容器的文件系统.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读