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:

  • xdebug in phpstorm and docker
  • Saving function output into a variable named in an argument
  • 'mv' command throwing error but executing fine in docker
  • ADB unable to start or find devices after sudo adb devices
  • Fail to create postgres extensions through bash script
  • docker volume: subdirectories are missing
  • 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

  • docker-compose: connection refused between containers, but service accessible from host
  • Install MySQL connector/J in Docker container
  • How to dockerize individual apps inside Hadoop in multi tenant environment?
  • Using Ansible,Jenkins and docker to build fast test environments
  • php ftp_get() not working in Docker container
  • Strange way to launch a background apache/mysql docker container
  • 5 Solutions collect form web for “Unable to start Docker Service in Ubuntu 16.04”

    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
      

    Well, finally I fixed it

    Everything you have to do is to load a different storage-driver in my case I will use overlay:

    1. Disable Docker service: sudo systemctl stop docker.service
    2. Start Docker Daemon (overlay driver): sudo docker daemon -s overlay
    3. Run Demo container: sudo docker run hello-world

    In order to make these changes permanent, you must edit /etc/default/docker file and add the option:

    DOCKER_OPTS="-s overlay"

    Next time Docker service get loaded, it will run docker daemon -s overlay

    I’ve been able to get it working after a kernel upgrade by following the directions in this blog.

    https://mymemorysucks.wordpress.com/2016/03/31/docker-graphdriver-and-aufs-failed-driver-not-supported-error-after-ubuntu-upgrade/

    sudo apt-get update
    sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
    
    sudo modprobe aufs
    
    sudo service docker restart
    

    After viewing some of the other answers it looks like the issue was that the service wasn’t running with the -s overlay options.

    I also happened to notice that docker tried to start up with ${DOCKER_OPTS} at the end of the call.

    I was able to export DOCKER_OPTS="-s overlay" (bc by default DOCKER_OPTS was empty) and get docker running.

    I had the same problem after upgrade docker from 17.05-ce to 17.06-ce via docker-machine

    1. Update /etc/systemd/system/docker.service.d/10-machine.conf

      replace

      `docker deamon` => `dockerd`
      

      example from

      [Service]
      ExecStart=
      ExecStart=/usr/bin/docker deamon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic
      Environment=
      

      to

      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic
      Environment=
      
    2. flush changes by executing:

      sudo systemctl daemon-reload
      
    3. restart docker:

      sudo systemctl restart docker
      
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.