docker无法启动容器... cpu.shares:没有这样的文件或目录

时间:2015-09-29 13:57:32

标签: docker debian

当我尝试运行泊坞窗图像时,出现以下错误:

Error response from daemon: Cannot start container {id}: 
[8] System error: open /sys/fs/cgroup/cpu,cpuacct/init.scope/system.slice/docker-{id}.scope/cpu.shares: no such file or directory
已安装

/sys/fs/cgroup/cpu,cpuacct/,但system.slice

中没有init.scope目录

docker version:

Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64

内核:

Linux christian-pc 4.1.0-2-amd64 #1 SMP Debian 4.1.6-1 (2015-08-23) x86_64 GNU/Linux

坐骑(摘录):

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw,relatime)
/dev/mapper/christian--pc--vg-home on /home type ext4 (rw,relatime,data=ordered)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=814904k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,我发现了你的问题,https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798778," systemd 226" init.scope打破了docker.io 1.7.1~dfsg1-1。&#34 ;

其中德米特里·斯米尔诺夫说你可以在--exec-opt native.cgroupdriver=cgroupfs中将DOCKER_OPTS添加到/etc/default/docker

为我工作。

答案 1 :(得分:5)

DOCKER_OPTS更改为使用cgroupfs as in Jared Jennings answer可能还不够 - 因为还有其他问题需要检查。

在评论docker issue 9889" zepalmer"注意到可以配置docker systemd条目  在/lib/systemd/system/docker.service中不要使用DOCKER_OPTS中的/etc/default/docker。结果是改变/etc/default/docker对守护进程的启动方式无效。

我发现这个问题在Ubuntu 16.04.2 LTS中是正确的:

看着 /lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
ExecStart=/usr/bin/docker -d -H fd://
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

这与zepalmer报道的内容相同。

更改" ExecStart"服务部分中的行包含以下内容:

EnvironmentFile=/etc/default/docker
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://

并在--exec-opt native.cgroupdriver=cgroupfs DOCKER_OPTS中包含/etc/default/docker,docker似乎再次正常工作。

答案 2 :(得分:0)

这拯救了我的一天:)

  1. sudo dnf配置管理器\ --add-repo \ https://download.docker.com/linux/fedora/docker-ce.repo
  2. sudo dnf -y安装docker-ce
  3. sudo groupadd docker && sudo usermod -aG docker $ USER
  4. sudo gedit / etc / default / grub
  5. GRUB_CMDLINE_LINUX添加参数:systemd.unified_cgroup_hierarchy = 0
  6. sudo grub2-mkconfig重新启动

https://github.com/moby/moby/issues/33594