LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Docker in Slackware 14.2 stable: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed (https://www.linuxquestions.org/questions/slackware-14/docker-in-slackware-14-2-stable-error-initializing-graphdriver-error-running-devicecreate-createpool-dm_task_run-failed-4175583836/)

qlands 07-05-2016 10:55 AM

Docker in Slackware 14.2 stable: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed
 
I just installed Docker 1.8.2 from SBo https://slackbuilds.org/repository/1...?search=docker in Slackware 14.2 Stable but when I try to start the daemon I get:

Quote:

INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: Error running DeviceCreate (CreatePool) dm_task_run failed
FATA[0000] Error starting daemon: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed
docker daemon -D gives:
Code:

WARN[0000] please use 'docker daemon' instead.         
DEBU[0000] Registering DELETE, /images/{name:.*}       
DEBU[0000] Registering DELETE, /containers/{name:.*}   
DEBU[0000] Registering GET, /images/{name:.*}/get     
DEBU[0000] Registering GET, /containers/{name:.*}/json 
DEBU[0000] Registering GET, /containers/{name:.*}/export
DEBU[0000] Registering GET, /images/{name:.*}/json     
DEBU[0000] Registering GET, /containers/{name:.*}/stats
DEBU[0000] Registering GET, /exec/{id:.*}/json         
DEBU[0000] Registering GET, /images/{name:.*}/history 
DEBU[0000] Registering GET, /images/search             
DEBU[0000] Registering GET, /_ping                     
DEBU[0000] Registering GET, /containers/{name:.*}/logs 
DEBU[0000] Registering GET, /containers/{name:.*}/attach/ws
DEBU[0000] Registering GET, /images/json               
DEBU[0000] Registering GET, /events                   
DEBU[0000] Registering GET, /containers/ps             
DEBU[0000] Registering GET, /images/get               
DEBU[0000] Registering GET, /version                   
DEBU[0000] Registering GET, /containers/{name:.*}/archive
DEBU[0000] Registering GET, /containers/json           
DEBU[0000] Registering GET, /info                     
DEBU[0000] Registering GET, /containers/{name:.*}/changes
DEBU[0000] Registering GET, /containers/{name:.*}/top 
DEBU[0000] Registering OPTIONS,                       
DEBU[0000] Registering POST, /auth                     
DEBU[0000] Registering POST, /containers/create       
DEBU[0000] Registering POST, /build                   
DEBU[0000] Registering POST, /commit                   
DEBU[0000] Registering POST, /containers/{name:.*}/resize
DEBU[0000] Registering POST, /images/{name:.*}/push   
DEBU[0000] Registering POST, /containers/{name:.*}/unpause
DEBU[0000] Registering POST, /images/{name:.*}/tag     
DEBU[0000] Registering POST, /containers/{name:.*}/copy
DEBU[0000] Registering POST, /containers/{name:.*}/rename
DEBU[0000] Registering POST, /containers/{name:.*}/start
DEBU[0000] Registering POST, /images/load             
DEBU[0000] Registering POST, /images/create           
DEBU[0000] Registering POST, /containers/{name:.*}/exec
DEBU[0000] Registering POST, /containers/{name:.*}/attach
DEBU[0000] Registering POST, /containers/{name:.*}/restart
DEBU[0000] Registering POST, /containers/{name:.*}/pause
DEBU[0000] Registering POST, /exec/{name:.*}/start     
DEBU[0000] Registering POST, /containers/{name:.*}/wait
DEBU[0000] Registering POST, /containers/{name:.*}/kill
DEBU[0000] Registering POST, /exec/{name:.*}/resize   
DEBU[0000] Registering POST, /containers/{name:.*}/stop
DEBU[0000] Registering PUT, /containers/{name:.*}/archive
DEBU[0000] Registering HEAD, /containers/{name:.*}/archive
DEBU[0000] docker group found. gid: 281               
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
DEBU[0000] devicemapper: driver version is 4.34.0     
DEBU[0000] Generated prefix: docker-8:1-2495232       
DEBU[0000] Checking for existence of the pool 'docker-8:1-2495232-pool'
DEBU[0000] Pool doesn't exist. Creating it.           
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: Error running DeviceCreate (CreatePool) dm_task_run failed
FATA[0000] Error starting daemon: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed

check-config.sh gives:
Code:

info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- 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_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_MEMCG_KMEM: enabled
- 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: missing
- CONFIG_NET_CLS_CGROUP: enabled
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_VS: enabled (as module)
- CONFIG_EXT3_FS: enabled
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: enabled
- CONFIG_EXT3_FS_SECURITY: enabled
    (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)
    Optional (for secure networks):
    - CONFIG_XFRM_ALGO: enabled
    - CONFIG_XFRM_USER: enabled
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
  - "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

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

I tried many things like running with --storage-opt="dm.blocksize=64k" or removing /var/lib/docker but nothing seems to work.

Any idea is much appreciated.

Richard Cranium 07-05-2016 05:26 PM

Did you create the "docker" group? Did you add yourself to the "docker" group?

Richard Cranium 07-05-2016 09:02 PM

Code:

0 ✓ testbed ~ # ps -ef | grep docker
root    24981    1  0 20:55 pts/0    00:00:00 /usr/bin/docker -d -p /var/run/docker.pid
root    25964 25936  0 20:59 pts/2    00:00:00 grep docker
0 ✓ testbed ~ # uname -a
Linux testbed 4.4.14 #1 SMP Fri Jun 24 13:30:15 CDT 2016 x86_64 AMD Phenom(tm) II X6 1100T Processor AuthenticAMD GNU/Linux
0 ✓ testbed ~ #

I ran the command "groupadd -r -g 281 docker" as root prior to installing docker.

sodamnmad 07-06-2016 02:21 AM

try this: http://www.linuxquestions.org/questi...2/#post5520986

i just updated to 14.2 and i think its no longer an issue but it might be my original fix is still in place. there are 2 ways to handle it:

1) recompile the kernel with the following:
Device Drivers
-> Multiple devices driver support (RAID and LVM)
---> Device mapper support [M]

2) or use the non-huge kernel that uses modules

ponce 07-06-2016 03:12 AM

FYI, docker works fine here on a stock slackware64-14.2 (32bit installs are not supported).

what I have done:
- installed google-go-lang from SBo (it has some files in /etc/profile.d that must be loaded so after installing it you have to logout/reboot);
- created the docker group as written in the docker's README on SBo and added my user to it (to be effective you have to logout/login again);
Code:

groupadd -r -g 281 docker
gpasswd -a myuser docker

- rebooted my host for the above stuff to be effective;
- installed docker from SBo;
- launched the daemon
Code:

/etc/rc.d/rc.docker start
- executed a shell in a docker container as a user
Code:

docker run -i -t vbatts/slackware bash
no issues at all with the device mapper
Code:

time="2016-07-06T09:51:42.351079422+02:00" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
time="2016-07-06T09:51:50.926095771+02:00" level=info msg="Option DefaultDriver: bridge"
time="2016-07-06T09:51:50.926239853+02:00" level=info msg="Option DefaultNetwork: bridge"
time="2016-07-06T09:51:50.933023327+02:00" level=info msg="Firewalld running: false"
time="2016-07-06T09:51:51.002597887+02:00" level=warning msg="Your kernel does not support swap memory limit."
time="2016-07-06T09:51:51.004602053+02:00" level=info msg="Loading containers: start."

time="2016-07-06T09:51:51.004753259+02:00" level=info msg="Loading containers: done."
time="2016-07-06T09:51:51.004779799+02:00" level=info msg="Daemon has completed initialization"
time="2016-07-06T09:51:51.004799424+02:00" level=info msg="Docker daemon" commit=0a8c2e3 execdriver=native-0.2 graphdriver=devicemapper version=1.8.2
time="2016-07-06T10:05:55.996003425+02:00" level=info msg="POST /v1.20/containers/create"
time="2016-07-06T10:05:55.997953603+02:00" level=error msg="Handler for POST /containers/create returned error: No such image: vbatts/slackware (tag: latest)"
time="2016-07-06T10:05:55.997992645+02:00" level=error msg="HTTP Error" err="No such image: vbatts/slackware (tag: latest)" statusCode=404
time="2016-07-06T10:05:55.998300784+02:00" level=info msg="POST /v1.20/images/create?fromImage=vbatts%2Fslackware&tag=latest"
time="2016-07-06T10:06:06.950892591+02:00" level=info msg="POST /v1.20/containers/create"
time="2016-07-06T10:06:07.087045031+02:00" level=info msg="POST /v1.20/containers/725e2ffac0c59370cc62627b68614d9d1c0c595fcf717341dee73fc8d91e1e5b/attach?stderr=1&stdin=1&stdout=1&stream=1"
time="2016-07-06T10:06:07.090735234+02:00" level=info msg="POST /v1.20/containers/725e2ffac0c59370cc62627b68614d9d1c0c595fcf717341dee73fc8d91e1e5b/start"
time="2016-07-06T10:06:07.169060278+02:00" level=info msg="POST /v1.20/containers/725e2ffac0c59370cc62627b68614d9d1c0c595fcf717341dee73fc8d91e1e5b/resize?h=77&w=220"


qlands 07-06-2016 03:08 PM

I just did the same in a new Slackware 14.2 64bits inside a VBox VM and nothing:

Quote:

INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: Error running DeviceCreate (CreatePool) dm_task_run failed
FATA[0000] Error starting daemon: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed
I used the Kernel Huge and Ext4.

Any other difference that might cause this error?

ponce 07-06-2016 03:13 PM

I'm using the generic kernel here.

I'm blind guessing: have you tried doing this not inside a virtual machine but on a real host?

vbatts 07-07-2016 06:51 AM

Sadly the devicemapper output is not always helpful.

It is worth confirming the behavior on your machine the generic kernel as well (you'll need to make an initrd). I do not have this issue, and I also use the generic kernel.

Further, there are other storage drivers for Docker that I feel work better. I personally prefer btrfs. It requires making a partition mkfs.btrfs formatted partition mounted at /var/lib/docker. Overlayfs is also good, but has a couple edge cases that are less than ideal.

Richard Cranium 07-07-2016 11:37 AM

Quote:

Originally Posted by vbatts (Post 5571777)
Further, there are other storage drivers for Docker that I feel work better. I personally prefer btrfs. It requires making a partition mkfs.btrfs formatted partition mounted at /var/lib/docker. Overlayfs is also good, but has a couple edge cases that are less than ideal.

Why do you believe that btrfs is a better storage driver for Docker than ext4?

I'm not claiming that it isn't; I'm curious what features btrfs provides that makes it better.

vbatts 07-07-2016 11:56 AM

Quote:

Originally Posted by Richard Cranium (Post 5571959)
Why do you believe that btrfs is a better storage driver for Docker than ext4?

This isn't a comparison to ext4, it is a comparison to the docker devicemapper storage driver (https://github.com/docker/docker/tre...iver/devmapper).
A docker feature that is hidden in generic usage, when it defaults to using the 'devicemapper' storagedriver.
If you haven't manually created an lvm thinpool blocked device and configured docker's devicemapper driver to use it, then the driver defaults to creating flat files that it attaches to a loopback block device, and then uses these.
There are a number of moving parts, and in this most generic, default behavior, the performance is not great. At all.

As for the other storage drivers, none of them are "a clear winner".
'btrfs' is performant. But eventually folks say that after a while it slows a bit. Sometime ago the kernel's btrfs had issues (like a btree cksum corruption). Honestly I like it though, and haven't had much issues.
'overlay' - is great, but has edgecases. It's not technically POSIX compliant. The underlying FS ought to be ext4 or xfs. It handles unix sockets not straight-forward (due to opening it for a write causes a copy-up). There are behavior's about opening files for read, and while still holding the file-handle, when another file-handle is opened for write. Now you have open file-handles for two different inodes.
'aufs' - is only for ubuntu, and requires carried kernel-patches. Don't use this.
'zfs' - i hear good things. never used it. the zfs modules can be compiled and used without patching your kernel
'devicemapper' - it is enterpris'ie, but requires some hands on knowledge and management in-order to have a good experience.

Richard Cranium 07-07-2016 12:03 PM

Ah. Thanks for the detailed answer. I'll have to play with my setup when I get home. :)

qlands 07-13-2016 06:55 PM

Yep. Docker works fine in Slackware 14.2 with Generic Kernel not with Huge Kernel.

For those like me who did not bother to use Generic Kernel you can get some info on how to use Generic Kernel here

Thanks for all the replies.

mbcosta 08-10-2016 03:25 PM

Hi glands
Just for recording, I have the same scenario Slackware 14.2 64bits inside a VBox VM and has another way to make docker run by editing the file /etc/default/docker, adding the next line:

# Force OverlayFS for storage driver
DOCKER_OPTS="$DOCKER_OPTS -s overlay"

http://stackoverflow.com/questions/3...g-on-this-host


All times are GMT -5. The time now is 05:01 AM.