Py学习  »  docker

Docker-在CentOS中提取时出错(无效的tar头)

user12384512 • 5 年前 • 2702 次点击  
Docker version 18.06.1-ce, build e68fc7a
CentOS Linux release 7.5.1804 (Core)

我的docker文件是

FROM node:8

当我执行时- docker build -t my-image . 我有以下错误

Sending build context to Docker daemon  44.03kB
Step 1/1 : FROM node:8
8: Pulling from library/node
f189db1b88b3: Extracting [==================================================>]  54.25MB/54.25MB
3d06cf2f1b5e: Download complete
687ebdda822c: Download complete
99119ca3f34e: Download complete
e771d6006054: Download complete
b0cc28d0be2c: Download complete
7225c154ac40: Download complete
7659da3c5093: Download complete
failed to register layer: ApplyLayer exit status 1 stdout:  stderr: archive/tar: invalid tar header

有什么线索吗?有什么建议我能做什么来解决它吗?

我在跑步时也有同样的错误 docker run -it ubuntu

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46318
 
2702 次点击  
文章 [ 3 ]  |  最新文章 5 年前
BMitch
Reply   •   1 楼
BMitch    6 年前

错误消息指示您试图下载的图像已损坏。我能想到的地方有几个:

  • 在远程注册表服务器上
  • 在途中
  • 记忆中
  • 在磁盘上
  • 根据申请

考虑到图像的受欢迎程度,我将排除注册表服务器有问题的可能性。您可能有一个不稳定的服务器,在下载大图像时会触发内存或磁盘问题。在Linux上,您可能会在 dmesg 是的。

Docker的版本已经足够新了,任何过去关于它的问题早就被解决了。tar文件处理中只有一个与非常大的层(超过8gb)相关的问题,它不适用于您正在拉取的图像。tar处理直接嵌入到docker中,因此更改或升级tar二进制文件不会影响docker。

可能存在存储驱动程序和后端存储设备问题。如果Docker还没有默认设置为overlay2(您可以在 docker info 并用/etc/docker/daemon.json中的条目更改它)。

我在名单上的第一个猜测是“在途”部分。由于请求将通过https,因此不会来自坏包。但网络上拦截所有网络流量的代理可能是罪魁祸首。如果您有代理,请确保Docker已配置为登录并使用您的代理。有关详细信息,请参见 https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

Martin Zeitler
Reply   •   2 楼
Martin Zeitler    6 年前

当你有同样的错误 tar 提取时,提取的图像可能确实已损坏。

对问题的评论 15561 提示一下,当地的那栋楼还可以用。

Ivan Gurzhiy
Reply   •   3 楼
Ivan Gurzhiy    6 年前

尝试使用以下方法解压缩图像: tar tvf yourarchive

如果没有错误,请尝试更新Docker(如果可能) 如果出现错误,请尝试重建存档。

所描述的类似问题 there