failed to register layer: Error processing tar file(exit status 1): archive/tar: invalid tar header

网上通用解法:

保存镜像时:

docker save -o [image].tar     // 重点是加上-o选项

load镜像时:

docker load -i [image].tar

https://programmerah.com/docker-load-error-processing-tar-fileexit-status-1-archive-tar-invalid-tar-header-23841/

本次遇到的问题,docker pull 官方镜像也报标题上的错误,上面的解法不可行

1. /etc/docker/daemon.json加上"debug": true,开启debug模式,重启docker

2. 查看/var/log/syslog系统日志,或者systemctl status --no-pager -l docker

3. docker pull 拉取镜像生成日志

4. 查看到日志中有如下报错

Jul  5 19:21:22 user1-PC dockerd[12660]: time="2021-07-05T19:21:22.900484398+08:00" level=debug msg="Using /usr/bin/unpigz to decompress"
Jul  5 19:21:22 user1-PC dockerd[12660]: time="2021-07-05T19:21:22.906903862+08:00" level=debug msg="Applying tar in /var/lib/docker/overlay2/5310514321a87c9de8cbf64b82375c67bfd425319c984deee5e8c7acc3595441/diff" storage-driver=overlay2
Jul  5 19:21:23 user1-PC dockerd[12660]: time="2021-07-05T19:21:23.826759201+08:00" level=debug msg="Cleaning up layer 5310514321a87c9de8cbf64b82375c67bfd425319c984deee5e8c7acc3595441: Error processing tar file(exit status 1): archive/tar: invalid tar header"
Jul  5 19:21:24 user1-PC dockerd[12660]: time="2021-07-05T19:21:24.827150282+08:00" level=debug msg="Downloaded 4a374dab6938 to tempfile /var/lib/docker/tmp/GetImageBlob171202648"
Jul  5 19:21:24 user1-PC dockerd[12660]: time="2021-07-05T19:21:24.862329656+08:00" level=info msg="Attempting next endpoint for pull after error: failed to register layer: Error processing tar file(exit status 1): archive/tar: invalid tar header"

5. Using /usr/bin/unpigz to decompress之后发生了错误,猜测是unpigz的问题

6. 在另一台可用的机器上发现机器里没有这个命令,也能成功pull

7. 测试mv /usr/bin/unpigz /usr/bin/unpigz-bak,让其不识别到这个命令

8. 成功pull,问题解决

查看官网发现有一个MOBY_DISABLE_PIGZ的参数,让docker在unpigz命令已安装的情况下也不使用unpigz

https://docs.docker.com/engine/reference/commandline/dockerd/

上一篇:2021-03-09 Matlab RBF神经网络及其实例


下一篇:1 工厂机制