Search code examples
linuxdockercentoscentos7loopback

dockerd: Error running deviceCreate (CreatePool) dm_task_run failed


I'm building some CentOS VM with VMWare, with no access to internet, so I've downloaded and made local repositories, including this one Then I have installed docker-engine.x86_64, and when starting the docker daemon, I get the following errors :

[root]# dockerd
DEBU[0000] docker group found. gid: 993
...
...
DEBU[0001] Error retrieving the next available loopback: open /dev/loop-control: no such device
ERRO[0001] **There are no more loopback devices available.**
ERRO[0001] [graphdriver] prior storage driver "devicemapper" failed: loopback attach failed
DEBU[0001] Cleaning up old mountid : start.
FATA[0001] Error starting daemon: error initializing graphdriver: loopback attach failed

After manually add the loop module which control loop device with this command :

insmod /lib/modules/3.10.0-327.36.2.el7.x86_64/kernel/drivers/block/loop.ko

The error changes to :

 [graphdriver] prior storage driver "devicemapper" failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

I've read that it could be because I have not enough space disk, I think it's not that, any idea?

[root]# df -k .
Filesystem               blocs de 1K Used      Available Used Mounted on
/dev/mapper/centos-root    51887356 2436256   49451100   5%    /

Solution

  • I got the "There are no more loopback devices available" error, which stopped dockerd from running.

    I fixed it by ensuring the storage driver was 'overlay':

    # /usr/bin/dockerd -D --storage-driver=overlay
    

    This was on Debian Jessie and docker running as a systemd service/unit.

    To make it permanent, I created a systemd drop-in:

    $ cat /etc/systemd/system/docker.service.d/docker.conf
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// --storage-driver=overlay