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

问题描述 投票:0回答:8

我按照 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 

我感谢任何帮助解决这个问题。

docker kubernetes ubuntu-14.04
8个回答
39
投票

我通过手动启动 docker deamon 解决了这个问题:

sudo service docker start


31
投票

注意:看起来这个问题只存在于 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 文档在新的 Docker 版本中没有提到这一点.

更新

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

sudo apt-get install cgroup-lite

4
投票

可能需要包裹:

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

3
投票

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

cgroupfs-mount
解决了这个问题。

sudo aptitude install cgroupfs-mount

3
投票

我刚刚在 Fedora 31 上遇到了这个问题。here 中描述的解决方案是将

systemd.unified_cgroup_hierarchy=0
附加到
GRUB_CMDLINE_LINUX
中的
/etc/sysconfig/grub
var。

(就我而言,

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
并重新启动。


3
投票

我只需要从

cgroup
中删除所有
/etc/fstab
的安装,我解决了
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 的基本映像中。


0
投票

就我而言,我不需要安装或配置任何新东西。在此故障之前,Docker 运行良好。 尝试重新启动 docker(例如

systemctl restart docker
)。 如果失败,请关闭并冷启动机器。确保 docker 正在运行。 在正常运行 129 天后,我的 docker 进入了一个奇怪的、糟糕的状态。


0
投票

通过运行以下命令检查 cgroup 是否已安装:

$ 猫 /proc/self/cgroup | grep 设备

如果您看到如下所示的输出:

1:name=systemd:/user/docker/12345.devices

然后 cgroups 已经安装,你可能有不同的问题导致错误。

如果您在运行上述命令时没有看到任何输出,那么您需要手动挂载 cgroups。为此,请运行以下命令:

$ sudo mkdir /sys/fs/cgroup/设备 $ sudo mount -t cgroup -o 设备设备 /sys/fs/cgroup/devices

挂载 cgroups 后,使用以下命令重启 Docker 服务:

$ sudo systemctl 重启 docker

© www.soinside.com 2019 - 2024. All rights reserved.