使用tar解压文件提示gzip: stdin: not in gzip format错误

使用tar解压文件提示gzip: stdin: not in gzip format错误

1. 问题描述

使用docker save xxxx > xxx.tar导出镜像,由于文件太大,需要split -b 3000m xxx.tar来分割文件,刻录到光盘然后导入到服务器上。

后面使用cat * | tar -xzv来解压压缩的镜像,随后使用docker load导入镜像。

开始的几次都没有问题,不过昨天同样的过程,提示gzip: stdin: not in gzip format

2. 问题原因

网上搜了一下,找到了这个网页,意思是这个文件不是gzip格式的,使用tar -xvf来解压就好了。于是尝试了一下,倒是执行成功了,但是解压出来一堆的文件夹,而不是一个镜像文件。

于是求教于同事,把上面整个过程重复了一下,然后发现了问题所在。开始几次没有问题,是因为我多了一个tar的过程。我把几个镜像放入了一个文件夹里,然后压缩了文件夹;最后一次失败了,是因为我使用docker save之后直接split了,没有tar的这个过程。所以解压的是一个image文件,才会解压出一堆的文件夹。

3. 解决方式

知道了原因,想解决办法就好。image文件被split,后面只需要合并就好了,合并后即可load镜像。命令如下:

cat xx* > image.tar

posted @ 2018-12-25 10:42  wswang  阅读(3675)  评论(0编辑  收藏  举报