系统重启后,看起来现有的docker镜头已损坏。
我尝试了以下内容 -
我觉得删除图片会有所帮助。当我尝试删除时,它似乎只删除标记。它不会删除所有图层。我怎么能这样做?
我试过了docker rmi
。图像被删除了。
现在,我尝试再次拉动图像,其中一些图层已经存在。我试图运行码头工具,它说oci runtime error ..... file not found
。
这些图像正在其他机器上运行,并且正在使用这台机器直到几个小时之前。
答案 0 :(得分:7)
答案 1 :(得分:2)
只需使用docker images -a
选项即可了解所有带图层的图片。要了解特定图片的特定图层,您可以使用docker history $image_name
此外,还有一个选项可以删除可以删除它的悬空图像。
docker rmi $(docker images -f dangling=true -q)
悬空图片:
Docker镜像由多个图层组成。悬空图像是与任何标记图像无关的图层。它们不再用于目的并占用磁盘空间。可以通过向docker images命令添加值为-f
的过滤器标记dangling=true
来定位它们。如果您确定要删除它们,可以添加-q
标记,然后将其ID传递给docker rmi:
希望这会对你有所帮助。谢谢!
答案 2 :(得分:0)
Docker rmi应该从您的计算机中删除所有图像层。您可以尝试强制执行:
docker rmi --force [IMAGE]
答案 3 :(得分:0)
只是有完全相同的问题(在我的情况下,node:latest)
遇到相同问题后,这就是我所做的事情:
{
string stsDiscoveryEndpoint = "https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration";
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
OpenIdConnectConfiguration config = configManager.GetConfigurationAsync().Result;
TokenValidationParameters validationParameters = new TokenValidationParameters
{
ValidateAudience = false,
ValidateIssuer = false,
IssuerSigningKeys = config.SigningKeys, //.net core calls it "IssuerSigningKeys" and "SigningKeys"
ValidateLifetime = true
};
JwtSecurityTokenHandler tokendHandler = new JwtSecurityTokenHandler();
SecurityToken jwt;
var result = tokendHandler.ValidateToken(token, validationParameters, out jwt);
return jwt as JwtSecurityToken;
}
^^这就是我们所坚持的
但是事实证明,当docker映像尝试构建时,会有一个残留映像:
[root@container1 docker]# docker rmi -f node:latest
Untagged: node:latest
Untagged: node@sha256:908e8182394cb5672465780ed45512d9b78dccd10d674e84158ea65b40bba755
[root@container1 docker]# docker pull node:latest
latest: Pulling from library/node
Digest: sha256:908e8182394cb5672465780ed45512d9b78dccd10d674e84158ea65b40bba755
Status: Downloaded newer image for node:latest
因此删除该边缘容器:
[root@container1 containers]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3af68deafbd 4c144cb53d02 "/bin/sh -c 'sed -i …" 5 minutes ago Created flamboyant_keller
然后删除有效图像
[root@container1 containers]# docker rm a3af68deafbd
a3af68deafbd
然后去
答案 4 :(得分:0)
如果您可能和想要擦除所有图像和容器,则可以执行此操作。
停止并删除所有容器(是否在运行):
docker rm $(docker stop $(docker ps -aq))
另外,使用system prune command:
docker system prune --volume --all
删除:
要跳过确认对话框,请添加-f
标志。
自从头开始重新启动后,它应该可以解决损坏的图层问题。