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

weylhg0b  于 2023-04-05  发布在  Kubernetes
关注(0)|答案(8)|浏览(407)

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

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

o8x7eapl

o8x7eapl1#

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

8iwquhpp

8iwquhpp2#

  • 注意:此问题似乎仅在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
oewdyzsn

oewdyzsn3#

可能需要包:

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

a1o7rhls4#

我在使用Debian时遇到过这个问题。
软件包cgroupfs-mount解决了这个问题。

sudo aptitude install cgroupfs-mount
r7s23pms

r7s23pms5#

我刚刚在Fedora 31上遇到了这个问题。解决方案如here所述是将systemd.unified_cgroup_hierarchy=0附加到/etc/sysconfig/grub中的GRUB_CMDLINE_LINUX var。
(In我的案例,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并重新启动。

eanckbw9

eanckbw96#

我只需要从/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

之后,您必须重新启动。
之所以需要“额外”,是因为在Ubuntu中,aufs不再包含在基本映像中。

bnl4lu3b

bnl4lu3b7#

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

vltsax25

vltsax258#

通过运行以下命令检查cgroups是否已挂载:
$ cat /proc/self/cgroup|grep设备
如果您看到如下所示的输出:
1:name=systemd:/user/docker/12345.devices
那么cgroups已经挂载了,你可能有一个不同的问题导致错误。
如果在运行上述命令时没有看到任何输出,则需要手动挂载cgroups。为此,请运行以下命令:
$ sudo mkdir /sys/fs/cgroup/devices $ sudo mount -t cgroup -o devices devices /sys/fs/cgroup/devices
挂载cgroups后,使用以下命令重启Docker服务:
$ sudo systemctl重新启动对接器

相关问题