Docker - 没有这个文件或目录

12

当我运行我的docker文件时,我收到了一个错误。它说当我运行Docker build .时,/var/lib/docker/aufs/layers/xxxx:没有这个文件或目录。

我已经尝试了许多方法来删除容器和镜像,所以在这个问题上我已经基本卡住了。

任何建议?

Docker文件如下:

FROM node:6

RUN git clone https://github.com/preboot/angular2-webpack.git

WORKDIR angular2-webpack

RUN sed -i.bak 's/--port 8080/--host 0.0.0.0 --port 8080/'
package.json RUN npm i

CMD [ "npm", "run", "start" ]

完整的控制台输出如下:

Sending build context to Docker daemon
9.728 kB
Step 1 : FROM node:6
6: Pulling from library/node
6a5a5368e0c2: Already exists
7b9457ec39de: Already exists
ff18e19c2db4: Already exists
6a3d69edbe90: Already exists
0ce4b037e17f: Already exists
82252a100d5a: Already exists
Digest:
sha256:db245bde5445eb122d8dc090ba98539a9ef7f56c0ea981ade643695af0d8eaf0
Status: Downloaded newer image for node:6
---> 9873603dc506 Step 2 :
RUN git clone https://github.com/preboot/angular2-webpack.git open
/var/lib/docker/aufs/layers/9319fd93cb6d6718243ff2e65ce5d2aa6122a1bb9211aa9f8e88d85c298727e5:
no such file or directory User:docker-test 

编辑

感谢@BMitch的建议,问题已经解决:

  1. rm -rf /var/lib/docker/*
  2. 完全卸载Docker
  3. 重新安装Docker

在运行git clone之前,您可能需要指定工作目录,否则您将克隆到原始节点映像指定的工作目录中。 - bspates
4个回答

9

如果出现这种情况,我建议尝试完全清除docker,使用rm -rf /var/lib/docker/*命令。在此之前,请备份所有数据(卷),然后关闭docker,并且您需要重新拉取或重建所有镜像。如果aufs仍然存在问题,请尝试更改文件系统驱动程序,例如在服务启动中更改为dockerd -s overlay2

首先检查常见问题,例如磁盘空间不足或应用程序版本过旧,不会有任何损失。


谢谢,删除文件夹起作用了。我会更新问题并包含我解决问题的步骤。 - Jimi
在Windows上,/var/lib文件位于哪里? - Ford O.
@FordO。我没有任何Windows机器。上面的问题似乎是针对Linux安装的。如果您有其他问题,请使用“提问”链接。 - BMitch

2
尝试在干净的机器上重新构建图像或使用--no-cache标志进行操作,这似乎是缓存问题。
此外,在我的公司中,我们将代码克隆到构建图像的机器中,然后将代码复制到容器中。在我看来,这是更好的解决方案,但我认为这是一个品味问题。

我同意将代码克隆到主机并将其复制到容器中。这样,您可以控制实际使用的版本/修订版本。在 OPs 的情况下,容器可能会因构建容器的日期而不同版本。 - Martin
我尝试使用 --no-cache 标志,但是得到了相同的错误。 - Jimi

2
Docker使用的数据文件已损坏。您可以执行以下命令:
1- 如果存在,删除容器和镜像
docker rm CONTAINER ID
docker rmi IMAGE ID

2- Stop the Docker service (Ubuntu)

service docker stop

3- 启动Docker服务(Ubuntu)

service docker start

4- Check Docker service status (Ubuntu)

service docker status

1
这个解决方案可行。我删除了我的 /var/lib/docker 文件夹并出现了这个错误。这个解决方案可行。谢谢。 - Pat. ANDRIA

-1
docker system prune -af 

对我有用


“仅有代码的答案并不是高质量的答案”。虽然这段代码可能很有用,但您可以通过解释它为什么有效、如何有效、何时应该使用以及其限制是什么来改进它。请编辑您的答案,包括解释和相关文档链接。 - Stephen Ostermiller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接