错误:"构建dockerfile时"创建aufs mount时出错"

lar*_*ars 43 docker dockerfile

我尝试构建docker文件时收到此错误

 error creating aufs mount to /var/lib/docker/aufs/mnt   
 /6c1b42ce1a98b1c0f2d2a7f17c196221445f1054566065d4c607e4f1b99930eb-init:   
 invalid argument
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我如何解决它?

AMa*_*nce 56

删除后我有一些未解决的错误/var/lib/docker/aufs,这一些额外的步骤被清除了.

要添加@benwalther 答案,因为我缺乏评论的声誉:

# Cleaning up through docker avoids these errors
#   ERROR: Service 'master' failed to build:
#     open /var/lib/docker/aufs/layers/<container_id>: no such file or directory
#   ERROR: Service 'master' failed to build: failed to register layer:
#     open /var/lib/docker/aufs/layers/<container_id>: no such file or directory
docker rm -f $(docker ps -a -q)
docker rmi -f $(docker images -a -q)

# As per @BenWalther's answer above
sudo service docker stop
sudo rm -rf /var/lib/docker/aufs

# Removing the linkgraph.db fixed this error:
#   Conflict. The name "/jenkins_data_1" is already in use by container <container_id>.
#   You have to remove (or rename) that container to be able to reuse that name.
sudo rm -f /var/lib/docker/linkgraph.db


sudo service docker start
Run Code Online (Sandbox Code Playgroud)

  • 在停止docker之后,我必须在它开始工作之前用`rm -rf/var/lib/docker/*`清除所有内容. (4认同)
  • 我还遇到了"未能注册层:open/var/lib/docker/aufs/layers/<container_id>:没有这样的文件或目录"错误.这似乎几乎为我做了伎俩,除了我还必须清除图像aufs文件夹(/ var/lib/docker/image/aufs) (3认同)

小智 14

我已删除/var/lib/docker/aufs/diff并遇到同样的问题:

将aufs挂载创建到/ var/lib/docker/aufs/mnt/blah-blah-init时出错:无效参数

它通过运行以下命令解决:

docker stop $(docker ps -a -q);
docker rm $(docker ps -a -q);
docker rmi -f $(docker images -a -q)
Run Code Online (Sandbox Code Playgroud)


Anw*_*war 13

如果您尝试在持久启用 Live CD 中使用 docker,您可能会遇到此错误。我猜,这是因为你不能在overlayfs 挂载中挂载aufs,这是持久层。

解决方案只是使用不同的驱动程序。我用vfs/etc/docker/daemon.json

这里是

{
    "storage-driver": "vfs"
}
Run Code Online (Sandbox Code Playgroud)

  • 我在尝试在 docker 容器内运行 docker 服务时使用了这个答案,并且效果很好。我知道这样做不是最佳实践,但它很适合我的需求。 (3认同)
  • 这对我有用 (2认同)
  • 这正是我一直在寻找的。如果您从实时 USB 或任何其他可移动媒体运行 ubuntu,请执行此操作。谢谢伙计,你拯救了我的一天! (2认同)

Ben*_*her 12

AUFS无法安装docker容器文件系统.

这可能是因为:路径已经安装 - 或者 - 由于存在大量现有卷,Docker与AUFS的交互存在竞争条件.

要解决此问题,请尝试以下操作:

  1. 重新启动docker服务或守护程序,然后重试.

  2. 检查mount安装在任何路径下的aufs /var/lib/docker/aufs/.如果找到,停止docker,然后umount他们(需要sudo).

    例:

mount

none on /var/lib/docker/aufs/mnt/55639da9aa959e88765899ac9dc200ccdf363b2f09ea933370cf4f96051b22b9 type aufs (rw,relatime,si=5abf628bd5735419,dio,dirperm1)

然后 sudo umount /var/lib/docker/aufs/mnt/55639da9aa959e88765899ac9dc200ccdf363b2f09ea933370cf4f96051b22b9

  1. 如果这不起作用,请停止docker sudo rm -rf /var/lib/docker/aufs.您将丢失所有已停止的容器和所有图像.但这只是保证解决问题.


Bon*_*ono 8

不幸的是,在我的系统上,我无法用上述答案解决这个问题.docker管理器一直记住aufs层中的某个文件,它无法再访问它.其他解决方案也无效.因此,如果这是您的选项,您可以尝试以下修复:uninstall/purge dockerdocker-engine:

apt-get purge docker docker-engine
Run Code Online (Sandbox Code Playgroud)

然后确保一切/var/lib/docker被删除.

rm -rf /var/lib/docker
Run Code Online (Sandbox Code Playgroud)

之后再次安装docker.


dmy*_*ush 5

我刚刚在使用 Docker CE 18.03 的 Lubuntu (Ubuntu 4.15.0-20-generic) 上遇到了类似的问题。所描述的选项都没有帮助。

最新的 docker 版本似乎使用了 overlay2 存储驱动程序。然而,某些应用程序需要 aufs。因此,一个可能的修复方法可能是简单地使用此 docker 指南将存储驱动程序更改为 aufs(只需将“overlay2”替换为“aufs”),如本指南中所示。


k3n*_*nhu 5

I'm using Raspbian with Raspberry 4

Best way to do it..

Check your docker version with: sudo docker info and check "Storage Driver"

  1. sudo systemctl stop docker
  2. sudo nano /etc/docker/daemon.json
  3. write this code below and save it
{
    "storage-driver": "vfs"
}
Run Code Online (Sandbox Code Playgroud)
  1. sudo systemctl start docker

altought vfs... has a performance issue and could not be the best choice... :)