升级 Linux 内核后出现错误"Cannot connect to the Docker daemon. Is 'dockeR语言 d' running on this host?"



我正在使用Ubuntu 14.04和docker v1.8.2。Docker以前工作得很好。然后我把我的Linux内核从3.16升级到4.05,现在docker坏了。

<<h3>码头工人图像/h3>
simlw@sim-lw:~$ docker images
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

ps auxwww | grep docker

simlw@sim-lw:~$ ps auxww | grep docker   
simlw    23085  0.0  0.0  15976  2276 pts/24   S+   13:12   0:00 grep --color=auto docker 
sudo docker -d
simlw@sim-lw:~$ sudo docker -d
Warning: '-d' is deprecated, it will be removed soon. See usage.
WARN[0000] please use 'docker daemon' instead.          
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
ERRO[0000] [graphdriver] prior storage driver "aufs" failed: driver not supported 
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported 

有人知道如何解决这个问题吗?提前谢谢。

请注意,我已经读到无法连接到Docker守护进程。docker -d'在这个主机上运行?和Docker守护进程没有运行,它们都不能帮助我。

Ubuntu从内核包3.18版开始就放弃了对AUFS的支持,因为从那个版本开始,OverlayFS是Linux内核的一部分。我认为你的docker守护进程正试图使用AUFS驱动程序,因为你有一个/var/lib/docker/aufs文件夹。无论如何,您可以在运行docker守护进程时使用-s--storage-driver=选项强制使用正确的存储驱动程序。

因此,首先,要测试守护进程是否与OverlayFS存储驱动程序一起工作,请在终端中运行该守护进程:sudo docker daemon -s overlay。一旦您测试它工作正常,您就可以永久地修改它,编辑文件/etc/default/docker,添加下一行:

# Force OverlayFS for storage driver
DOCKER_OPTS="$DOCKER_OPTS -s overlay"

我从Debian Jessie升级到测试版,现在使用linux-image-4.2,我遇到了同样的问题,缺少aufs驱动程序。

一个快速的解决方法是删除docker aufs文件夹。您可能会丢失一些数据,所以请小心操作!

sudo rm/var/lib/docker/aufs

如果docker守护进程已经在运行,或者您可以成功地运行root命令,您可能需要使用以下命令将您的用户id添加到docker组:

sudo usermod -aG docker <userid>

,然后注销。如果您仍然得到相同的信息,请尝试:

sudo service docker restart

最新更新