Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to start Docker Service in Ubuntu 16.04

I've been trying to use Docker (1.10) on Ubuntu 16.04 but installation fails because Docker Service doesn't start. I've already tried to install docker by docker.io, docker-engine apt packages and curl -sSL https://get.docker.com/ | sh but it doesn't work.

My Host info is:

Linux Xenial 4.5.3-040503-generic #201605041831 SMP Wed May 4 22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Here is systemctl status docker.service:

● docker.service - Docker Application Container Engine    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)    Active: failed (Result: exit-code) since sáb 2016-05-14 15:17:31 CEST; 12min ago      Docs: https://docs.docker.com   Process: 22479 ExecStart=/usr/bin/docker daemon -H fd:// (code=exited, status=1/FAILURE)  Main PID: 22479 (code=exited, status=1/FAILURE)  may 14 15:17:30 Xenial docker[22479]: time="2016-05-14T15:17:30.103601523+02:00" level=info msg="New containerd process, pid: 22485\n" may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.149064723+02:00" level=error msg="devmapper: Unable to delete device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool" may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.149127439+02:00" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section." may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.153010028+02:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool" may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.153130839+02:00" level=fatal msg="Error starting daemon: error initializing graphdriver: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool" may 14 15:17:31 Xenial systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31+02:00" level=info msg="stopping containerd after receiving terminated" may 14 15:17:31 Xenial systemd[1]: Failed to start Docker Application Container Engine. may 14 15:17:31 Xenial systemd[1]: docker.service: Unit entered failed state. may 14 15:17:31 Xenial systemd[1]: docker.service: Failed with result 'exit-code'. 

Here is sudo docker daemon -D

DEBU[0000] docker group found. gid: 999                  DEBU[0000] Listener created for HTTP on unix (/var/run/docker.sock)  INFO[0000] previous instance of containerd still alive (23050)  DEBU[0000] containerd connection state change: CONNECTING  DEBU[0000] Using default logging driver json-file        DEBU[0000] Golang's threads limit set to 55980           DEBU[0000] received past containerd event: &types.Event{Type:"live", Id:"", Status:0x0, Pid:"", Timestamp:0x57372cae}  DEBU[0000] containerd connection state change: READY     DEBU[0000] devicemapper: driver version is 4.34.0        DEBU[0000] devmapper: Generated prefix: docker-8:6-2101297  DEBU[0000] devmapper: Checking for existence of the pool docker-8:6-2101297-pool  DEBU[0000] devmapper: poolDataMajMin=7:0 poolMetaMajMin=7:1  DEBU[0000] devmapper: Major:Minor for device: /dev/loop0 is:7:0  DEBU[0000] devmapper: Major:Minor for device: /dev/loop1 is:7:1  DEBU[0000] devmapper: loadDeviceFilesOnStart()           DEBU[0000] devmapper: Skipping file /var/lib/docker/devicemapper/metadata/transaction-metadata  DEBU[0000] devmapper: loadDeviceFilesOnStart() END       DEBU[0000] devmapper: constructDeviceIDMap()             DEBU[0000] devmapper: constructDeviceIDMap() END         DEBU[0000] devmapper: Rolling back open transaction: TransactionID=1 hash= device_id=1  ERRO[0000] devmapper: Unable to delete device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool  WARN[0000] devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section.  DEBU[0000] devmapper: Initializing base device-mapper thin volume  DEBU[0000] devicemapper: CreateDevice(poolName=/dev/mapper/docker-8:6-2101297-pool, deviceID=1)  DEBU[0000] devmapper: Error creating device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool  DEBU[0000] devmapper: Error device setupBaseImage: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool  ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool  DEBU[0000] Cleaning up old mountid : start.              FATA[0000] Error starting daemon: error initializing graphdriver: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool 

Here is ./check-config.sh output:

warning: /proc/config.gz does not exist, searching other paths for kernel config ... info: reading kernel config from /boot/config-4.5.3-040503-generic ...  Generally Necessary: - cgroup hierarchy: properly mounted [/sys/fs/cgroup] - apparmor: enabled and tools installed - CONFIG_NAMESPACES: enabled - CONFIG_NET_NS: enabled - CONFIG_PID_NS: enabled - CONFIG_IPC_NS: enabled - CONFIG_UTS_NS: enabled - CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled - CONFIG_CGROUPS: enabled - CONFIG_CGROUP_CPUACCT: enabled - CONFIG_CGROUP_DEVICE: enabled - CONFIG_CGROUP_FREEZER: enabled - CONFIG_CGROUP_SCHED: enabled - CONFIG_CPUSETS: enabled - CONFIG_MEMCG: enabled - CONFIG_KEYS: enabled - CONFIG_MACVLAN: enabled (as module) - CONFIG_VETH: enabled (as module) - CONFIG_BRIDGE: enabled (as module) - CONFIG_BRIDGE_NETFILTER: enabled (as module) - CONFIG_NF_NAT_IPV4: enabled (as module) - CONFIG_IP_NF_FILTER: enabled (as module) - CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module) - CONFIG_NF_NAT: enabled (as module) - CONFIG_NF_NAT_NEEDED: enabled - CONFIG_POSIX_MQUEUE: enabled  Optional Features: - CONFIG_USER_NS: enabled - CONFIG_SECCOMP: enabled - CONFIG_CGROUP_PIDS: enabled - CONFIG_MEMCG_KMEM: missing - CONFIG_MEMCG_SWAP: enabled - CONFIG_MEMCG_SWAP_ENABLED: missing     (note that cgroup swap accounting is not enabled in your kernel config, you can enable it by setting boot option "swapaccount=1") - CONFIG_BLK_CGROUP: enabled - CONFIG_BLK_DEV_THROTTLING: enabled - CONFIG_IOSCHED_CFQ: enabled - CONFIG_CFQ_GROUP_IOSCHED: enabled - CONFIG_CGROUP_PERF: enabled - CONFIG_CGROUP_HUGETLB: enabled - CONFIG_NET_CLS_CGROUP: enabled (as module) - CONFIG_CGROUP_NET_PRIO: enabled - CONFIG_CFS_BANDWIDTH: enabled - CONFIG_FAIR_GROUP_SCHED: enabled - CONFIG_RT_GROUP_SCHED: missing - CONFIG_EXT3_FS: missing - CONFIG_EXT3_FS_XATTR: missing - CONFIG_EXT3_FS_POSIX_ACL: missing - CONFIG_EXT3_FS_SECURITY: missing     (enable these ext3 configs if you are using ext3 as backing filesystem) - CONFIG_EXT4_FS: enabled - CONFIG_EXT4_FS_POSIX_ACL: enabled - CONFIG_EXT4_FS_SECURITY: enabled - Network Drivers:   - "overlay":     - CONFIG_VXLAN: enabled (as module) - Storage Drivers:   - "aufs":     - CONFIG_AUFS_FS: missing   - "btrfs":     - CONFIG_BTRFS_FS: enabled (as module)   - "devicemapper":     - CONFIG_BLK_DEV_DM: enabled     - CONFIG_DM_THIN_PROVISIONING: enabled (as module)   - "overlay":     - CONFIG_OVERLAY_FS: enabled (as module)   - "zfs":     - /dev/zfs: missing     - zfs command: missing     - zpool command: missing 

If someone could please help me I would be very thankful

like image 920
Salva Corts Avatar asked May 14 '16 13:05

Salva Corts


People also ask

Why is my Docker not starting?

Go to performance and then CPU to verify whether Virtualization is enabled or not. If virtualization is disabled Docker Desktop cannot start. If the virtualization is disabled in your machine then you need to enable it from BIOS Settings.

How do I start and stop Docker service in Ubuntu?

You should start docker using systemd/systemctl as that is the standard or correct way to start up docker. The first command basically tell docker to startup every time you boot into the host. To stop the docker process that is already running you can just press ctrl + c or send a kill signal to it.


2 Answers

Update

It seems that in newer versions of docker and Ubuntu the unit file for docker is simply masked (pointing to /dev/null).
You can verify it by running the following commands in the terminal:

sudo file /lib/systemd/system/docker.service sudo file /lib/systemd/system/docker.socket 

You should see that the unit file symlinks to /dev/null.
In this case, all you have to do is follow S34N's suggestion, and run:

sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service sudo systemctl status docker 

I'll also keep the original post, that answers the error log stating that the storage driver should be replaced:

Original Post

I had the same problem, and I tried fixing it with Salva Cort's suggestion, but printing /etc/default/docker says:

# THIS FILE DOES NOT APPLY TO SYSTEMD

So here's a permanent fix that works for systemd (Ubuntu 15.04 and higher):

  1. create a new file /etc/systemd/system/docker.service.d/overlay.conf with the following content:

    [Service] ExecStart= ExecStart=/usr/bin/docker daemon -H fd:// -s overlay 
  2. flush changes by executing:

    sudo systemctl daemon-reload 
  3. verify that the configuration has been loaded:

    systemctl show --property=ExecStart docker 
  4. restart docker:

    sudo systemctl restart docker 
like image 170
dvir Avatar answered Sep 27 '22 17:09

dvir


The following unmasking commands worked for me (Ubuntu 18). Hope it helps someone out there... :-)

sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service 
like image 34
S34N Avatar answered Sep 27 '22 18:09

S34N