Changing DOCKER_OPTS
to use cgroupfs as in Jared Jennings answer, may not be enough -- as there is another issue to check.
In a comment to docker issue 9889 "zepalmer" noted that the docker systemd entry could be configured
in /lib/systemd/system/docker.service
not to use the DOCKER_OPTS
in /etc/default/docker
. The consequence is that changing /etc/default/docker
will be ineffective on how the daemon starts.
I found this issue was true in Ubuntu 16.04.2 LTS:
Looking in
/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
this is the same contents reported by zepalmer.
After changing the first two lines of"ExecStart" line in the service section towith the following:
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
and including --exec-opt native.cgroupdriver=cgroupfs
in DOCKER_OPTS
in /etc/default/docker
, docker seems to be working normally again.