我在GCE中运行Debian Wheezy服务器。我们有使用AUFS存储驱动程序的Docker容器。最近发生了一些变化,今天我无法连接到docker守护进程。
运行的输出示例
docker daemon --storage-driver=aufs
FATA[0001] Error starting daemon: error initializing graphdriver: driver not supported
此问题的所有其他答案都是a)rm -rf /var/lib/docker/aufs
,即完全开始或b)--storage-driver=overlay2
,使用不同的存储驱动程序运行。但是我不想丢失我的容器,而且我没有找到一种方法来导出它们而不使用aufs存储驱动程序运行守护进程。
我一直在互联网上寻找解决方案。官方文档(https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/#configure-docker-with-the-aufs-storage-driver)表示支持我的Debian版本(7.12),支持我的内核版本(3.16.0-0.bpo.4-amd64)。
如果我使用storage-driver = devicemapper docker运行守护进程按预期连接,当然我的容器都没有,因为它们在AUFS系统中。
当我运行/proc/filesystems | grep aufs
时结果为空,但是aufs作为/lib/modules/3.16.0-0.bpo.4-amd64/kernel/fs/aufs/aufs.ko
的模块出现。
我从docker网站下载并运行了脚本:https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
输出包括:
CONFIG_AUFS_FS: enabled (as module)
我遇到的其他建议使用modprobe
,当我sudo modprobe aufs
时,我收到了错误
ERROR: could not insert 'aufs': Unknown symbol in module, or unknown parameter (see dmesg)
然后dmesg | grep aufs
显示此错误行:
aufs: Unknown symbol setfl (err 0)
从那里我跑modinfo aufs
得到了这个输出块,我坦率地不知道该怎么做:
filename:/lib/modules/3.16.0-0.bpo.4-amd64/kernel/fs/aufs/aufs.ko
分期:Y
别名:fs-aufs版本:3.16-20140908 + setfl
description:aufs - 高级多层统一文件系统
作者:Junjiro R. Okajima
许可证:GPLsrcversion:986E0DDDAA9BDCB0E005DF4
取决于:
intree:Y
vermagic:3.16.0-0.bpo.4-amd64 SMP mod_unload modversions
parm:brs:use / fs / aufs / si _ * / brN(int)
parm:allow_userns:允许非特权在用户下安装(bool)
我不知道如何继续,我无法确定错误是与docker本身有关还是与aufs依赖关系。我也不知道在最后一天左右会发生什么变化才能改变我的系统行为。我知道我的一些软件背后有几个版本,我可以安全地升级什么才能让docker再次使用aufs?或者我还能尝试什么?