当我尝试构建docker文件时出现此错误
error creating aufs mount to /var/lib/docker/aufs/mnt
/6c1b42ce1a98b1c0f2d2a7f17c196221445f1054566065d4c607e4f1b99930eb-init:
invalid argument
这是什么意思?我该如何解决?
答案 0 :(得分:54)
删除/var/lib/docker/aufs
后我发现了一些未解决的错误,这些错误会被清除。
要添加到@benwalther answer,因为我缺乏评论的声誉:
# 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
答案 1 :(得分: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)
答案 2 :(得分:12)
AUFS无法挂载docker容器文件系统。
这可能是因为:路径已经挂载 - 或者 - 由于存在大量现有卷,Docker与AUFS的交互存在竞争条件。
要解决此问题,请尝试以下操作:
重新启动docker服务或守护程序,然后重试。
检查mount
是否在/var/lib/docker/aufs/
下的任何路径上安装了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
sudo rm -rf /var/lib/docker/aufs
。您将丢失所有已停止的容器和所有图像。但这只是保证解决问题。答案 3 :(得分:8)
不幸的是,在我的系统上,我无法用上述答案解决这个问题。 docker管理器一直记住aufs层中的某个文件,它无法再访问它。其他解决方案也无效。因此,如果这是您的选项,您可以尝试以下修复:uninstall / purge docker
和docker-engine
:
apt-get purge docker docker-engine
然后确保删除/var/lib/docker
中的所有。
rm -rf /var/lib/docker
之后再次安装docker。
答案 4 :(得分:3)
我刚刚在Docker CE 18.03的Lubuntu(Ubuntu 4.15.0-20-generic)上遇到了类似的问题。所描述的选项均无济于事。
似乎最新的docker版本使用overlay2存储驱动程序。但是,某些应用程序需要aufs。因此,可能的解决方法可能是简单地使用此docker指南将存储驱动程序更改为aufs(只需将“ overlay2”替换为“ aufs”)为in this guide.
答案 5 :(得分:1)
我正在将Raspbian与Raspberry 4一起使用
最佳方法。
使用以下命令检查您的Docker版本:
sudo docker info
并检查“存储驱动程序”
sudo systemctl stop docker
sudo nano /etc/docker/daemon.json
{
"storage-driver": "vfs"
}
sudo systemctl start docker
可选的vfs ...存在性能问题,可能不是最佳选择...:)
答案 6 :(得分:0)
在Windows重启后,解决了docker machine问题。
使用以下命令:
docker-machine stop
docker-machine start
docker-compose up
答案 7 :(得分:0)
在Windows中使用Docker时,出现了类似的问题:
ERROR: Service 'daemon' failed to build: error creating overlay mount
to /var/lib/docker/overlay2/83c98f716020954420e8b89e6074b1af6
1b2b86cd51ac6a54724ed263b3663a2-init/merged: no such file or directory
从映像的Dockerfile
中删除了一个卷,重建了映像,然后重新启动PC后,出现了问题。也许这是常见原因?
我设法通过单击Docker
-> Settings
-> Reset
-> Reset to factory defaults...
我所有的图像随后都丢失了,但这对我来说并不重要。我还认为,删除VM磁盘映像(可以在Advanced
的{{1}}标签下找到其路径)可以解决此问题。我还没有尝试过这种方法。
答案 8 :(得分:0)
如果尝试在持久启用Live CD中使用docker,则可能会遇到此错误。我猜是因为您不能在覆盖层挂载(持久层)中挂载aufs。
该解决方案只是使用其他驱动程序。我在vfs
/etc/docker/daemon.json
在这里
{
"storage-driver": "vfs"
}
答案 9 :(得分:0)
我也将这个答案放在这里,因为Google搜索将我引到这里,因为@whitebrow的答案包含了我在Google中搜索的术语
ERROR: Service '***' failed to build: error creating overlay mount
to /var/lib/docker/overlay2/***/merged: no such file or directory
就我而言,令人惊讶的解决方法是限制“ RUN”泊坞窗构建命令/层的数量,因为如果数量超过60个层/命令,则总是以丢失“合并”文件夹错误而告终,没有不管命令的内容是什么,即使简单的命令(例如RUN ls -la
)也以该错误结尾,如果这样/任何命令的总数大于60,这很奇怪。 Merged
子文件夹始终丢失,尽管即使我自动生成了所有合并的子文件夹,也总是在运行时动态创建了一个带有新哈希的新层,但该子文件夹却丢失了。
答案 10 :(得分:0)
我遇到了同样的问题,我通过将存储驱动程序添加到/etc/docker/daemon.json
来解决了这个问题您也可以参考此链接以查看其他驱动程序选项。 访问https://docs.docker.com/storage/storagedriver/select-storage-driver/
答案 11 :(得分:0)
我正在另一个容器中运行一个容器(也在该容器中安装了 docker),并试图在overlayfs 挂载上创建一个aufs 存储,这是不可能的。因此,我还将主机 overlyfs 存储更改为 aufs。它解决了我的问题。要检查存储驱动程序使用下面的命令。
docker info
解决方案只是使用不同的驱动程序。我在 /etc/docker/daemon.json
中使用过 aufs在这里
{
"storage-driver": "aufs"
}
有关详细说明,请阅读以下文档。 Docker storage documentation