Docker错误:处理tar文件时出错(退出状态1):意外的EOF

Docker错误:处理tar文件时出错(退出状态1):意外的EOF,docker,docker-compose,Docker,Docker Compose,我需要空间并执行:dockerrmi$(dockerimages-f“dangling=true”-q) 从那时起,我无法使用docker compose:docker compose build,我收到错误:错误:处理tar文件时出错(退出状态1):意外的EOF 我试图删除所有图像,重新安装docker,但什么也做不到:总是相同的错误,经过一段时间 我建立在另一个系统上,它成功了,这表明这是一个错误的国家问题 知道我应该清理什么吗 使用: ▶ docker version Client: V

我需要空间并执行:
dockerrmi$(dockerimages-f“dangling=true”-q)

从那时起,我无法使用docker compose:
docker compose build
,我收到错误:
错误:处理tar文件时出错(退出状态1):意外的EOF

我试图删除所有图像,重新安装docker,但什么也做不到:总是相同的错误,经过一段时间

我建立在另一个系统上,它成功了,这表明这是一个错误的国家问题

知道我应该清理什么吗

使用:

▶ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.24 (downgraded from 1.26)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:01:32 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.6
 API version:  1.24 (minimum version )
 Go version:   go1.6.2
 Git commit:   78d1802
 Built:        Tue Jan 31 23:35:14 2017
 OS/Arch:      linux/amd64
 Experimental: false

▶ docker-compose version
docker-compose version 1.11.2, build dfed245
docker-py version: 2.1.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

有一个内置命令用于删除未使用的图像(版本1.13+):

现在来处理这一情况:

  • 停止Docker服务

    systemctl stop docker
    
  • 备份
    /var/lib/docker
    然后:

  • 删除
    /var/lib/docker
    警告:这将删除图像、容器、卷等。。。确保你先备份它

    rm -rf /var/lib/docker
    
  • 启动Docker服务

    systemctl start docker  
    
更新:


正如在另一个答案中所指出的,在某些情况下可能是文件权限问题。请检查权限。

我也遇到了同样的问题,并且批准的答案对我不起作用


事实证明,我有一个具有权限的文件,不允许运行docker compose的用户读取它。删除文件后,一切正常

对于我来说,问题是Docker Pull被挂起,因此我按CTRL+C组合键退出并重试。相同的错误消息

最后,我在这个目录中找到了root拥有的一些文件。给予文件适当的权限修复了这个问题

chown-R:/var/lib/docker/tmp

  • MAC Docker版本17.12.0-ce,内部版本c97c6d6

如果您尝试查看权限、docker reset、docker system prune、删除所有容器、删除所有图像(悬空或其他),阅读有关此问题的所有信息,但均未成功。尝试卸载docker并重新安装稳定版本


虽然我遇到的错误是:
处理tar文件时出错(退出状态1):mkdir/some/path/name:没有这样的文件或目录

尝试增加Docker的内存,但它解决了我的问题

Preferences中的Docker内存设置被设置为2GB,因此在拖动~3GB图像时,我正好遇到了以下错误:

$ docker pull skymindops/skil-ce
latest: Pulling from skymindops/skil-ce
118c5f2883d6: Pull complete 
3d199b2e6224: Extracting [==================================================>]  2.902GB/2.902GB
failed to register layer: Error processing tar file(exit status 1): unexpected EOF

增加内存限制修复了它(我也增加了交换,但不确定是否需要它)。

在我的例子中,问题是由我的一个项目脚本创建的.dump文件

docker compose
将上下文作为tar文件传递给引擎,因此,
build
命令将tar(.dump文件)打包到另一个tar文件(docker上下文)中,从而在上下文上引发意外的EOF


由于容器中不需要.dump文件,我将其添加到了.dockrignore文件中。

对我来说,这是一个权限错误。 我反对与公关完全相同的问题,
错误:处理tar文件时出错(退出状态1):意外的EOF
我的解决方案是肮脏的,但对我有效

chown-R 777/foo/bar/project

您几乎总是希望避免在777上设置权限,655更为合理

0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r-
5 = r-x
6 = rw-
7 = rwx
可在此处找到更详细的解释:

参考:

一,。清理系统上的容器、映像、卷和网络:
docker系统删减--全部--强制--卷

2.docker compose up

我尝试了一切,从重新启动、重新安装docker到清除
/var/lib/docker

我的原因是破坏了项目中的构建上下文。在运行
git clean
将项目目录重置回其原始状态后,我能够
docker compose

在项目的根目录中运行
git clean-iXd
,以交互方式
git clean


编辑:过了一会儿,事情又发生了。这次,
git clean
没有修复它。我很确定这只发生在Ubuntu上。我的主要同事从未遇到过它。

我找到了一个临时解决方案:

  • 确保在
    docker compose.yml
    例如,将映像名称和容器名称指定为django_practice_db/django_practice_web

    服务:
    django_practice_db:
    图片:博士后
    容器名称:django_practice_db
    django_实习网站:
    容器名称:django_practice_web
    生成:。
    命令:pipenv run python manage.py runserver 0.0.0.0:8000
    
  • 将项目文件复制到其他位置

  • 进入复制的项目目录

  • 执行
    docker编写构建

  • 返回到原始项目目录

  • 执行
    docker compose up


  • 不确定为什么在更改文件夹路径时可以生成图像。

    python项目中更改Dockerfile位置时,我遇到了相同的问题。我尝试了被接受的答案,但不适合我

    我通过运行以下命令解决了问题:

    find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs sudo rm -r
    
    在项目根目录上

    问题是docker compose build试图读取pycache文件夹中的文件

    也许这也可以通过正确使用Dockrignore来解决,但我不想尝试

    希望这有帮助


    Saludos。

    可能有几个不同的问题。您可以通过检查docker build抛出的问题来发现问题

    问题是docker compose build将抑制问题的信息。找出问题所在

    不要使用:

    docker-compose build XXX
    
    相反,打开docker-compose.yml,找到服务的build:tag给您带来了问题,例如

    服务:
    您的服务:
    build:yourservice目录/
    
    然后运行:

    docker build yourservice-directory
    
    在此之后,您将看到问题所在。

    永久解决此错误
    docker build yourservice-directory
    
    /etc
    /log
    
    $ docker build .
    
    error checking context: 'no permission to read from '/home/david/docker/myservice/log/2020161.log'.
    
    Error processing tar file(exit status 1): write /code/node_modules/xxx: no space left on device
    
    /opt/McAfee/ens/tp/init/mfetpd-control.sh stop