在 ubuntu 14.04 上启动 docker 守护程序时出错(未安装设备 cgroup)

error starting docker daemon on ubuntu 14.04 (Devices cgroup isn't mounted)

我按照 docker 说明安装并验证了 docker 安装(来自 http://docs.docker.com/linux/step_one/)。

我在 2 Ubuntu 14.04 机器上试过,在启动 docker 守护进程时我在两台机器上都遇到了以下错误:

$ sudo docker daemon
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
INFO[0000] [graphdriver] using prior storage driver "aufs" 
INFO[0000] Option DefaultDriver: bridge                 
INFO[0000] Option DefaultNetwork: bridge                
WARN[0000] Running modprobe bridge nf_nat br_netfilter failed with    message: modprobe: WARNING: Module br_netfilter not found. , error: exit status 1 
INFO[0000] Firewalld running: false                     
WARN[0000] Your kernel does not support cgroup memory limit: mountpoint for memory not found 
WARN[0000] mountpoint for cpu not found                 
FATA[0000] Error starting daemon: Devices cgroup isn't mounted 

感谢任何帮助解决此问题的帮助。

注意:看起来这个问题只出现在 Ubuntu 14.04 及更早版本中。较新的 Ubuntu 版本不需要这个。

尝试以下操作:

  • 以具有 sudo 权限的用户身份登录 Ubuntu。

  • 编辑 /etc/default/grub 文件。

  • 设置GRUB_CMDLINE_LINUX值如下:

    GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

  • 保存并关闭文件。

  • 更新 GRUB。

    $ sudo update-grub

  • 重新启动系统。

有些人报告说重新启动 docker 守护程序有效:

sudo systemctl restart docker

如上所述,较新的docker documentation doesn't refer to this in the new Docker versions

更新

这适用于 Ubuntu 14.04 或更早版本的一些人:

sudo apt-get install cgroup-lite

我只需要从 /etc/fstab 中删除任何 cgroup 的安装,我就解决了 Devices cgroup isn't mounted 的问题。我认为 Module br_netfilter not found 只是一个警告,不会阻止 Docker 启动。但是你可以通过安装来修复它:

apt-get install linux-image-3.19.0-33-generic linux-image-extra-3.19.0-33-generic

之后你必须重新启动。

需要“额外”,因为 aufs 不再包含在 Ubuntu 中的基本图像中。

我通过手动启动 docker 守护进程解决了这个问题:

sudo service docker start

我在 debian 上遇到过这个问题。

软件包 cgroupfs-mount 解决了这个问题。

sudo aptitude install cgroupfs-mount

可能需要软件包:

apt-get install aufs-tools
apt-get install cgroup-lite

就我而言,我不需要安装或配置任何新的东西。 Docker 在这次失败之前 运行 很好。 尝试重新启动 docker(例如 systemctl restart docker)。 如果失败,请关闭并冷启动机器。确保 docker 为 运行。 在正常运行 129 天后,我的 docker 进入了一个奇怪的糟糕状态。

我刚刚在 Fedora 31 上遇到了这个问题。here 中描述的解决方案是将 systemd.unified_cgroup_hierarchy=0 附加到 /etc/sysconfig/grub 中的 GRUB_CMDLINE_LINUX 变量。

(在我的例子中,GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora-swap rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet systemd.unified_cgroup_hierarchy=0"

然后运行grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg然后重启。