nordize
(Nordize)
2023 年8 月 20 日 19:32
1
我尝试了 launcher cleanup 和 docker images prune -a,它们都会取消 discourse/base 镜像的标签,使其显示为:
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/app latest a413ce7df724 22 minutes ago 3.81GB
<none> <none> 036fcfb18c90 5 weeks ago 2.86GB
discourse/base 镜像显示为 <none>。站点仍然正常工作。有什么需要担心的吗?
如果我运行 launcher app rebuild,它会重建标签,也会重建 app 镜像,所以我最终会有两个 app 镜像,其中一个是悬空镜像。因此,如果我想清理未使用的镜像而不取消任何镜像的标签,我需要手动删除特定的悬空镜像,使用 docker image rm $IMAGE_ID,之后我看到的是之前的内容,即完全带标签和命名的:
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/app latest 548674fae97b 10 minutes ago 3.81GB
discourse/base 2.0.20230711-0100 036fcfb18c90 5 weeks ago 2.86GB
我猜如果没有手动删除,就没有办法进行完整清理而不产生未标记的镜像,因为 prune 命令会取消 base 镜像的标签。
附注:我不是 Docker 专家。
1 个赞
Canapin
(Coin-coin le Canapin)
2023 年8 月 22 日 13:43
2
你好 Nordize
这个问题在另一个话题中已经讨论过,你可能会发现一些有趣的信息:
It’s possible that once you manage to do the upgrade, those older images will be unused and will (eventually?) get removed.
(Glad I could help!)
向上滚动可以找到更多信息。
就我而言,我在所有的 Discourse 托管服务器上都有这张未命名、未标记的图片,这让我认为这是完全正常的。
1 个赞
nordize
(Nordize)
2023 年8 月 22 日 19:37
3
感谢您的提示,我搜索时没有找到那个帖子。查看这个关于“说明”(来自 Docker 论坛,讨论 Docker 容器的通用问题)的帖子:
I got additional instructions on how to handle the following:
The details are:
[image]
rofrano John Rofrano
1
20h
The command to remove an image is:
docker rmi {image_name}
Where {image_name} is the name of the image you want to delete. You can also use the image ID to delete the image (e.g., docker rmi {image_id}). This is what you will need to use to delete an image with a name of <none>.
For example, Let’s say you have the following images:
REPOSITORY TAG IMAGE ID …
……它看起来和我看到的设置很相似,但我不清楚的是,它是否有意 拥有两个镜像:discourse/base 和 discourse_latest/app 镜像。那个[来自 Docker 论坛的帖子]中的说明似乎假设这不是预期的行为,而是意外操作的残留,导致有两个镜像而不是一个。
是否有了解情况的人(开发者?)可以确认一下?