For reference: uname -r: 5.2.13-gentoo, systemd version 
243_rc2-r1[cgroup-hybrid], ACCEPT_KEYWORDS="~amd64"

My system started failing to start running docker.service automatically and the 
logs weren't too helpful. Finally I ran dockerd on its own and found that it 
gave me this error message:

Devices cgroup isn't mounted

This is not too easy to diagnose as there seem to be a set of solutions but 
none of the main two worked for me. One involved setting 2 options on the 
kernel command line:

cgroup_enable=memory swapaccount=1

And the other was to add USE="cgroup-hybrid" to systemd. I did this, but it too 
it did not work.

The other solution is to simply mount the cgroup manually and this works but I 
did not see why I'd have to do that now when I never had to in the past.

I actually had to add this to my command line:

systemd.legacy_systemd_cgroup_controller=yes

This has been noted in other distros but from what I can tell this is solely 
because runc has not been updated to be able to use cgroups v2.

Anyone else ran into this issue? Is there something I am missing so I wouldn't 
need to pass a kernel command line option?

Reference links:

https://docs.docker.com/install/linux/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities
https://github.com/opencontainers/runc/issues/654
https://github.com/opencontainers/runc/issues/1175
https://wiki.gentoo.org/wiki/Docker#Docker_service_fails_because_cgroup_device_not_mounted_.28systemd.29


-- 
Andrew Udvare



Reply via email to