1

When I try to upgrade to the latest version of docker-ce, 18.09.0~3-0~ubuntu-bionic, docker fails to start up with the error that it can't find the devicemapper plugin.

-- Unit docker.service has begun starting up.
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41-07:00" level=warning msg="Running experimental build"
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.149758139-07:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: lxd:lxd"
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.159295190-07:00" level=info msg="systemd-resolved is running, so using resolvconf: /run/systemd/resolve/resolv.conf"
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.159453828-07:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: lxd:lxd"
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160388092-07:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160423687-07:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160470021-07:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160482788-07:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160560969-07:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160601454-07:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160588007-07:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160697436-07:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160743537-07:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc4200db9f0, CONNECTING" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160691768-07:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42009a1d0, CONNECTING" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160760682-07:00" level=warning msg="Unable to locate plugin: devicemapper, retrying in 1s"
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160773855-07:00" level=info msg="blockingPicker: the picked transport is not ready, loop back to repick" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160922445-07:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42009a1d0, READY" module=grpc
Nov 18 22:16:41 server dockerd[6351]: time="2018-11-18T22:16:41.160999752-07:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc4200db9f0, READY" module=grpc
Nov 18 22:16:42 server dockerd[6351]: time="2018-11-18T22:16:42.161035546-07:00" level=warning msg="Unable to locate plugin: devicemapper, retrying in 2s"
Nov 18 22:16:44 server dockerd[6351]: time="2018-11-18T22:16:44.161383150-07:00" level=warning msg="Unable to locate plugin: devicemapper, retrying in 4s"
Nov 18 22:16:48 server dockerd[6351]: time="2018-11-18T22:16:48.161695623-07:00" level=warning msg="Unable to locate plugin: devicemapper, retrying in 8s"

Everything was working fine before the upgrade. When I revert back to the previous version of docker-ce, 18.06.1~ce~3-0~ubuntu it works again. Any ideas would be wonderful.

daemon.json:

{
    "userns-remap": "lxd",
    "userland-proxy": false,
    "storage-driver": "devicemapper",
    "storage-opts": [
      "dm.thinpooldev=/dev/mapper/docker-thinpool",
      "dm.use_deferred_removal=true",
      "dm.use_deferred_deletion=true"
    ]
}

uname:

Linux server 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

using Ubuntu 18.04.1 LTS

Thanks for taking your time to look this over.

3
  • Did you see this stackoverflow.com/questions/53252818/…
    – Ivan
    Nov 19, 2018 at 8:08
  • I don't think the above answer works for this, I see different issues. However, I think the OP might need to reinstall docker-ce to fire all necessary dependencies-install + trigger ubuntu 18.04 specific triggers. I have no issues running CE on 18.04, but I fully reinstalled it after the upgrade Nov 19, 2018 at 9:28
  • I completely removed the old docker-ce and reinstalled the newer one. But still can't start it.
    – BioSLuDge
    Nov 25, 2018 at 5:13

2 Answers 2

2

The deprecated devicemapper was removed from the Ubuntu docker package due to the code move to containerd.

Until this has been fixed I would recommend to pin the package to the 18.06 version.

cat > /etc/apt/preferences.d/docker  <<EOF
Package: docker-ce
Pin: version 18.06*
Pin-Priority: 1000
EOF

apt-get remove docker-ce runc docker containerd.io
apt-get install docker-ce thin-provisioning-tools
journalctl -xe | grep docker
0

I was able to start dockerd after removing my storage-opts and storage-driver configuration.

Based on the information at the link from @Ivan, I removed docker-ce and performed an autoremove. I then reinstalled docker-ce. A post install trigger attempted to start dockerd which failed, but the install process provided the journalctl -xe command to diagnose the problem.

Running journalctl -xe displayed an error message which caused me to suspect devicemapper. Removing the configuration allowed dockerd to start normally.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .