无法启动 Docker 守护进程(图形驱动程序问题)

7
在一台虚拟专用服务器上运行着 Ubuntu 16.04.5 LTS 4.4.0-108-generic。我打算使用 mup.js 部署 meteor 应用程序,但是由于 dockerd 没有启动而失败了。问题是,系统重新启动后我无法让 dockerd 启动。

我尝试按照其他线程中建议的更改 graphdriver(Not able to start docker on Ubuntu 16.04.2 LTS (error initializing graphdriver)),切换到 aufs 或 overlay2,但都没有成功。我还更新了内核、清除了 docker 包仓库,重新在我的机器上安装了 docker。

我几乎没有使用 docker 的经验,而我正在尝试重新上线一个展示网站,其中最后一天是明天!我必须说我有点绝望,希望能得到任何帮助。谢谢!

docker 和 dockerd 的版本均为 18.06.1-ce, build e68fc7a
$ sudo dockerd

INFO[0000] libcontainerd: new containerd process, pid: 3488 
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=1048576
WARN[0000] failed to rename /var/lib/docker/tmp for background deletion: %!s(<nil>). Deleting synchronously 
Error starting daemon: error initializing graphdriver: driver not supported

journalctl -xe产生以下结果:

Oct 03 01:22:19 vps332343 systemd[1]: Listening on Docker Socket for the API.
-- Subject: Unit docker.socket has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.socket has finished starting up.
-- 
-- The start-up result is done.
Oct 03 01:22:19 vps332343 systemd[1]: docker.service: Start request repeated too quickly.
Oct 03 01:22:19 vps332343 systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has failed.
-- 
-- The result is failed.
Oct 03 01:22:19 vps332343 systemd[1]: docker.socket: Unit entered failed state.
Oct 03 01:22:37 vps332343 sudo[3651]:  eboutin : TTY=pts/0 ; PWD=/etc/nginx/sites-available ; USER=root ; COMMAND=/bin/journalctl -xe
Oct 03 01:22:37 vps332343 sudo[3651]: pam_unix(sudo:session): session opened for user root by eboutin(uid=0)

使用 df -tH 命令会显示:

Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  970M     0  970M   0% /dev
tmpfs          tmpfs     196M  5.6M  190M   3% /run
/dev/vda1      ext4      9.7G  4.6G  5.1G  48% /
copymods       tmpfs     977M   28K  977M   1% /lib/modules
tmpfs          tmpfs     977M   68K  977M   1% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     977M     0  977M   0% /sys/fs/cgroup
tmpfs          tmpfs     196M     0  196M   0% /run/user/1002
tmpfs          tmpfs     196M     0  196M   0% /run/user/1001

/etc/docker/daemon.json的内容:

{"storage-driver":"devicemapper"}

(没有其他修改的配置文件)


你的内核版本是什么?你是如何安装Docker的,你的dockerd版本是多少? - BMitch
另外,请将您的 /etc/docker/daemon.json 与任何其他修改过的配置文件一起包含。 - BMitch
嗯,哈哈,我们目前正在运行内核4.4.0-108-generic,此前从4.4.0-137降级(我们编辑了grub文件并清除了更高版本的内核..)。我已经在我的帖子中编辑了其余的信息。 - Samuel Hackwill
如果您删除了daemon.json文件或切换到overlay2,会发生什么? - BMitch
删除JSON文件并尝试启动守护程序会引发相同的graphdriver错误。(ERRO[2018-10-03T16:11:41.088732386+02:00] [graphdriver] 先前的存储驱动程序devicemapper失败:devicemapper:运行deviceCreate(CreatePool)dm_task_run失败 启动守护程序时出错:初始化图形驱动程序时出错:devicemapper:运行deviceCreate(CreatePool)dm_task_run失败) - Samuel Hackwill
显示剩余2条评论
3个回答

4

在启动Docker之前,尝试将devicemapper配置为存储驱动程序,并清理/var/lib/docker/文件夹rm -rf /var/lib/docker/*(这将删除所有以前的容器/卷/ ...)。

当Docker正在运行时,请检查来自docker info的任何警告 - 它们可能帮助您进行其他配置。


我现在遇到了以下错误:启动守护程序出错:初始化图形驱动程序时发生错误:devicemapper:运行 deviceCreate(CreatePool)时出错,dm_task_run 失败。 - Samuel Hackwill
你有任何空闲空间吗? - Jan Garaj
1
Aufs是Ubuntu的默认选项,而且它运行良好。不知道您为什么建议改变呢? - Light.G
devicemapper是最无故障的存储驱动程序。但这似乎是一个操作系统问题 - 也许您有一个没有完整docker支持的自定义内核,也许/var/lib/docker没有使用正确的参数挂载,.... 'df -Th'命令可用于检查文件系统类型/大小。 - Jan Garaj
Devicemapper支持RHEL和CentOS,但由于其存在的所有问题和限制,正在逐步淘汰。在Ubuntu安装中不应使用此功能。 - BMitch
显示剩余4条评论

2
这可能是由于最近的内核更新导致了graphdriver: devicemapper的混乱。

因此,当rm -rf /var/lib/docker/*和重新安装Docker无效时,请尝试重新安装内核映像并重启计算机。

$ sudo apt-get install --reinstall linux-image-`uname -r`
$ sudo reboot

1

我刚刚删除了根目录下的devipemapper文件夹,重新加载守护进程并重启。这对我有用。


这对我在PopOS 20.04上也起作用了,多次重新安装+内核+更新,而且就是这个文件夹一直存在。 - undefined

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