2015-09-29 3 views
7

Wenn ich versuche, ein Docker Bild laufen ich die folgende Fehlermeldung erhalten:Docker können nicht Container ... cpu.shares starten: keine solche Datei oder das Verzeichnis

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/ montiert ist, aber es gibt kein system.slice Verzeichnis in 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 

Kernel:

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

Halterungen (Auszug):

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) 

Jede Hilfe sehr geschätzt wird.

+0

haben Sie versucht mit 'sudo docker run ...'? – BMW

+0

Problem mit github: https://github.com/docker/docker/issues/16256 – milkovsky

Antwort

6

Ich hatte das gleiche Problem, und ich fand Ihre Frage und auch https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798778, "systemd 226 init.scope bricht docker.io 1.7.1 ~ dfsg1-1."

Wobei Dmitry Smirnov sagt, dass Sie --exec-opt native.cgroupdriver=cgroupfs zu DOCKER_OPTS in /etc/default/docker hinzufügen können.

Arbeitete für mich.

+0

Tatsächlich systemd 226 brechen cfgroups, mit dem Cgroupfs-Treiber mit Docker behebt es. Nachdem Sie die Werte geändert haben, müssen Sie den Docker-Daemon neu starten, damit er funktioniert. – ghostbar

+0

Ich musste das zum Aufruf von docker hinzufügen in '/ etc/systemd/system/multi-user.target.wants/docker.service', aber ansonsten funktionierte es. – mjibson

5

Ändern DOCKER_OPTS, um cgroupfs as in Jared Jennings answer verwenden, möglicherweise nicht genug - da es ein anderes Problem zu überprüfen ist.

In einem Kommentar zu docker issue 9889 "zepalmer" stellten fest, dass der Docker systemd Eintrag in /lib/systemd/system/docker.service nicht zu verwenden, um die DOCKER_OPTS in /etc/default/docker konfiguriert werden. Die Konsequenz ist, dass die Änderung /etc/default/docker auf dem Start des Daemon unwirksam ist.

fand ich dieses Problem in Ubuntu 16.04.2 LTS zutraf:

in der Suche /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 

Dies ist die gleiche von zepalmer berichtet Inhalte.

die "ExecStart" Linie im Servicebereich mit folgendem Nach dem Wechsel:

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

einschließlich --exec-opt native.cgroupdriver=cgroupfs in DOCKER_OPTS in /etc/default/docker scheint Docker wieder normal zu arbeiten.

Verwandte Themen