13

我正在尝试了解一直在 Centos+Vagrant 上工作的东西,而不是在我们的供应商 RHEL(Red Hat Enterprise Linux Server 6.5 版(圣地亚哥))上工作的东西。一个sudo service docker restart 处理这个:

Stopping docker:                                             [  OK  ]
Starting cgconfig service: Error: cannot mount cpuset to /cgroup/cpuset: Device or resource busy
/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed
Failed to parse /etc/cgconfig.conf                           [FAILED]

Starting docker:                                              [  OK  ]

该服务启动正常,但图像无法运行。尝试时显示安装失败错误。启动日志也给出一两个警告。关于内核警告,centos 给出了相同的并且没有问题,因为 Epel 应该解决这个问题:

WARNING: You are running linux kernel version 2.6.32-431.17.1.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.
2014/08/07 08:58:29 docker daemon: 1.1.2 d84a070; execdriver: native; graphdriver:
[1233d0af] +job serveapi(unix:///var/run/docker.sock)
[1233d0af] +job initserver()
[1233d0af.initserver()] Creating server
2014/08/07 08:58:29 Listening for HTTP on unix (/var/run/docker.sock)
[1233d0af] +job init_networkdriver()
[1233d0af] -job init_networkdriver() = OK (0)
2014/08/07 08:58:29 WARNING: mountpoint not found

任何人都成功地克服了这个问题,还是我应该认输并等待提供商更新到 RHEL 7?

4

7 回答 7

7

我有同样的问题。

在此处输入图像描述

(1) 检查 cgconfig 状态

# /etc/init.d/cgconfig 状态

如果它停止了,请重新启动它

# /etc/init.d/cgconfig 重启

检查 cgconfig 是否正在运行

在此处输入图像描述

(2) 检查 cgconfig 是否开启

# chkconfig --list cgconfig

cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off

如果 cgconfig 关闭,请将其打开

在此处输入图像描述

(3) 如果还是不行,可能是缺少一些 cgroups 模块。在内核 .config 文件中,制作 menuconfig,将这些模块添加到内核中并重新编译并重新启动

之后应该没问题

在此处输入图像描述

于 2015-06-23T04:33:54.363 回答
1

我最终在 Google Groups 上提出了同样的问题,并最终在一些帮助下找到了解决方案。对我有用的是:

umount cgroup
sudo service cgconfig start

让 Docker 工作的项目同样被搁置了。后来容器的网络连接问题。这花了很多时间来解决,不得不放弃。

于 2014-10-07T07:34:46.993 回答
1

所以我花了一整天的时间尝试安装 docker 在我的 vps 上工作。我遇到了同样的错误。基本上它归结为 OpenVZ 直到几个月前才支持 docker 容器这一事实。特别是这个 RHEL 更新:

https://openvz.org/Download/kernel/rhel6/042stab105.14

假设这是您的问题,或者它的一些变体,解决它的负担就在您的主机上。他们将需要遵循以下步骤:

https://openvz.org/Docker_inside_CT

于 2015-05-23T04:55:19.773 回答
1

就我而言

/etc/rc.d/rc.cgconfig start

正在生成

启动 cgconfig 服务:Error: cannot mount cpu,cpuacct,memory to /cgroup/cpu_and_mem: Device or resource busy /usr/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mount failed 无法解析 /etc/cgconfig.conf

我不得不使用:

/etc/rc.d/rc.cgconfig restart

它会自动取消和安装组

停止 cgconfig 服务: 启动 cgconfig 服务:

于 2015-09-03T21:16:41.393 回答
1

好像 cgconfig 服务没有运行,所以检查一下!

# /etc/init.d/cgconfig status
# mkdir -p /cgroup/cpuacct /cgroup/memory /cgroup/devices /cgroup/freezer net_cls /cgroup/blkio
# cat /etc/cgconfig.conf |tail|grep "="|awk '{print "mount -t cgroup -o",$1,$1,$NF}'>cgroup_mount.sh
# sh ./cgroup_mount.sh
# /etc/init.d/cgconfig restart
# /etc/init.d/docker restart
于 2016-07-27T12:36:23.093 回答
0

cgconfig服务启动使用mount并且umount需要来自 docker 的额外权限提升 。

有关更多信息,请参见此处--privileged=true的标志。

我能够通过以下方式启动我的容器来克服这个问题:
docker run -it --privileged=true my-image

在 Centos6、Centos6.5 中测试。

于 2015-04-29T17:43:04.420 回答
0

当使用 cgroup_disable=memory 引导内核并且 /etc/cgconfig.conf 包含 memory = /cgroup/memory; 时会出现这种情况。

这会导致只挂载 /cgroup/cpuset 而不是全部挂载。

解决方案:要么从内核启动选项中删除 cgroup_disable=memory,要么注释掉 memory = /cgroup/memory; 来自 cgconfig.conf。

于 2015-04-07T09:26:06.707 回答