docker不能启动容器… cpu.shares:没有这样的文件或目录

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

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/被挂载,但init.scope没有system.slice目录

docker版本:

 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) 

很感谢任何forms的帮助。

我有同样的问题,我发现你的问题,也是https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798778,“systemd 226的init.scope打破了docker.io 1.7.1〜dfsg1 -1“。

其中Dmitry Smirnov说你可以在/etc/default/docker DOCKER_OPTS中添加--exec-opt native.cgroupdriver=cgroupfsDOCKER_OPTS

为我工作。

在Jared Jennings的回答中改变DOCKER_OPTS以使用cgroupfs可能是不够的 – 因为还有一个问题需要检查。

在对docker issue 9889的评论中,“zepalmer”指出docker systemd条目可以在/lib/systemd/system/docker.serviceconfiguration, /lib/systemd/system/docker.service不是在/etc/default/docker DOCKER_OPTS中使用DOCKER_OPTS 。 其结果是更改/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:// 

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