Failed to start daemon error initializing graphdriver driver not supported

After upgrade from 1.7.1 to 1.8.1 docker daemon refuse to start. It fails with this error log message: ERRO[0000] Failed to GetDriver graph btrfs /lxc/docker FATA[0000] Error starting daemon: error...

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

alambike opened this issue

Aug 18, 2015

· 53 comments

Comments

@alambike

After upgrade from 1.7.1 to 1.8.1 docker daemon refuse to start. It fails with this error log message:

ERRO[0000] Failed to GetDriver graph btrfs /lxc/docker  
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported 

docker version:
Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:32:18 UTC 2015
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is ‘docker -d’ running on this host?

uname -a:
Linux alambike-MM061 3.13.0-61-generic #100~precise1-Ubuntu SMP Wed Jul 29 12:06:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

I was running docker in my laptop, with ubuntu 12.04, with the btrfs driver, but after upgrade from 1.7.1 to 1.8.1 the docker daemon refuses to start.
The upgrade process was made with the recommended script curl -sSL https://get.docker.com/ | sh

It seems can’t find correct driver now

# docker -s btrfs -d -D
Warning: '-d' is deprecated, it will be removed soon. See usage.
WARN[0000] please use 'docker daemon' instead.          
DEBU[0000] Registering GET, /images/search              
DEBU[0000] Registering GET, /containers/json            
DEBU[0000] Registering GET, /containers/{name:.*}/export 
DEBU[0000] Registering GET, /containers/{name:.*}/json  
DEBU[0000] Registering GET, /containers/{name:.*}/attach/ws 
DEBU[0000] Registering GET, /info                       
DEBU[0000] Registering GET, /version                    
DEBU[0000] Registering GET, /containers/ps              
DEBU[0000] Registering GET, /containers/{name:.*}/top   
DEBU[0000] Registering GET, /containers/{name:.*}/stats 
DEBU[0000] Registering GET, /containers/{name:.*}/archive 
DEBU[0000] Registering GET, /_ping                      
DEBU[0000] Registering GET, /events                     
DEBU[0000] Registering GET, /images/json                
DEBU[0000] Registering GET, /images/get                 
DEBU[0000] Registering GET, /images/{name:.*}/get       
DEBU[0000] Registering GET, /images/{name:.*}/history   
DEBU[0000] Registering GET, /images/{name:.*}/json      
DEBU[0000] Registering GET, /containers/{name:.*}/changes 
DEBU[0000] Registering GET, /containers/{name:.*}/logs  
DEBU[0000] Registering GET, /exec/{id:.*}/json          
DEBU[0000] Registering POST, /images/{name:.*}/tag      
DEBU[0000] Registering POST, /containers/{name:.*}/pause 
DEBU[0000] Registering POST, /containers/{name:.*}/rename 
DEBU[0000] Registering POST, /commit                    
DEBU[0000] Registering POST, /images/create             
DEBU[0000] Registering POST, /images/load               
DEBU[0000] Registering POST, /images/{name:.*}/push     
DEBU[0000] Registering POST, /containers/{name:.*}/unpause 
DEBU[0000] Registering POST, /containers/{name:.*}/restart 
DEBU[0000] Registering POST, /exec/{name:.*}/resize     
DEBU[0000] Registering POST, /containers/{name:.*}/resize 
DEBU[0000] Registering POST, /containers/create         
DEBU[0000] Registering POST, /containers/{name:.*}/kill 
DEBU[0000] Registering POST, /containers/{name:.*}/start 
DEBU[0000] Registering POST, /containers/{name:.*}/stop 
DEBU[0000] Registering POST, /containers/{name:.*}/copy 
DEBU[0000] Registering POST, /containers/{name:.*}/exec 
DEBU[0000] Registering POST, /exec/{name:.*}/start      
DEBU[0000] Registering POST, /auth                      
DEBU[0000] Registering POST, /build                     
DEBU[0000] Registering POST, /containers/{name:.*}/wait 
DEBU[0000] Registering POST, /containers/{name:.*}/attach 
DEBU[0000] Registering PUT, /containers/{name:.*}/archive 
DEBU[0000] Registering DELETE, /containers/{name:.*}    
DEBU[0000] Registering DELETE, /images/{name:.*}        
DEBU[0000] Registering OPTIONS,                         
DEBU[0000] Registering HEAD, /containers/{name:.*}/archive 
DEBU[0000] [graphdriver] trying provided driver "btrfs" 
ERRO[0000] Failed to GetDriver graph btrfs /lxc/docker  
DEBU[0000] docker group found. gid: 999                 
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported 

@GordonTheTurtle

Hi!

Please read this important information about creating issues.

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.

If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.

This is an automated, informational response.

Thank you.

For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues


BUG REPORT INFORMATION

Use the commands below to provide key information from your environment:

docker version:
docker info:
uname -a:

Provide additional environment details (AWS, VirtualBox, physical, etc.):

List the steps to reproduce the issue:
1.
2.
3.

Describe the results you received:

Describe the results you expected:

Provide additional info you think is important:

———-END REPORT ———

#ENEEDMOREINFO

chrigu1981 reacted with thumbs up emoji
Name-less, cawa-93, LinboLen, hex0cter, nkkollaw, riverszhang89, Aresona, jcalfee, Karl-Robinson, ingobaab, and 68 more reacted with thumbs down emoji

@cpuguy83

Failed to GetDriver graph btrfs /lxc/docker

Where is it getting this /lxc/docker path from?

@alambike



Copy link


Contributor

Author

I’m using a link in /var/lib/docker to a partition in btrfs

ls -l /var/lib/docker
lrwxrwxrwx 1 root root 11 jun 25  2014 /var/lib/docker -> /lxc/docker
mount
...
/dev/sda6 on /lxc type btrfs (rw)

@cpuguy83

@alambike Ah, interesting.
Does this work if you do docker -d -D -s btrfs -g /lxc/docker?

@sleaze

I’m also hitting this issue with the current docker (installed via the curl docker.io.. cmd).

additional note:

I’m not using btrfs, just aufs.

@alambike



Copy link


Contributor

Author

Sorry for the delay, same result with -g /lxc/docker

docker daemon -D -s btrfs -g /lxc/docker
DEBU[0000] Registering GET, /version                    
DEBU[0000] Registering GET, /containers/ps              
DEBU[0000] Registering GET, /containers/{name:.*}/changes 
DEBU[0000] Registering GET, /containers/{name:.*}/json  
DEBU[0000] Registering GET, /events                     
DEBU[0000] Registering GET, /images/search              
DEBU[0000] Registering GET, /images/get                 
DEBU[0000] Registering GET, /images/{name:.*}/get       
DEBU[0000] Registering GET, /images/{name:.*}/history   
DEBU[0000] Registering GET, /containers/json            
DEBU[0000] Registering GET, /containers/{name:.*}/export 
DEBU[0000] Registering GET, /containers/{name:.*}/archive 
DEBU[0000] Registering GET, /info                       
DEBU[0000] Registering GET, /containers/{name:.*}/top   
DEBU[0000] Registering GET, /containers/{name:.*}/logs  
DEBU[0000] Registering GET, /containers/{name:.*}/stats 
DEBU[0000] Registering GET, /exec/{id:.*}/json          
DEBU[0000] Registering GET, /_ping                      
DEBU[0000] Registering GET, /images/json                
DEBU[0000] Registering GET, /images/{name:.*}/json      
DEBU[0000] Registering GET, /containers/{name:.*}/attach/ws 
DEBU[0000] Registering POST, /containers/create         
DEBU[0000] Registering POST, /containers/{name:.*}/kill 
DEBU[0000] Registering POST, /containers/{name:.*}/start 
DEBU[0000] Registering POST, /containers/{name:.*}/stop 
DEBU[0000] Registering POST, /containers/{name:.*}/resize 
DEBU[0000] Registering POST, /containers/{name:.*}/exec 
DEBU[0000] Registering POST, /exec/{name:.*}/start      
DEBU[0000] Registering POST, /auth                      
DEBU[0000] Registering POST, /build                     
DEBU[0000] Registering POST, /containers/{name:.*}/wait 
DEBU[0000] Registering POST, /containers/{name:.*}/attach 
DEBU[0000] Registering POST, /containers/{name:.*}/copy 
DEBU[0000] Registering POST, /containers/{name:.*}/pause 
DEBU[0000] Registering POST, /containers/{name:.*}/rename 
DEBU[0000] Registering POST, /commit                    
DEBU[0000] Registering POST, /images/create             
DEBU[0000] Registering POST, /images/load               
DEBU[0000] Registering POST, /images/{name:.*}/push     
DEBU[0000] Registering POST, /images/{name:.*}/tag      
DEBU[0000] Registering POST, /containers/{name:.*}/unpause 
DEBU[0000] Registering POST, /containers/{name:.*}/restart 
DEBU[0000] Registering POST, /exec/{name:.*}/resize     
DEBU[0000] Registering PUT, /containers/{name:.*}/archive 
DEBU[0000] Registering DELETE, /containers/{name:.*}    
DEBU[0000] Registering DELETE, /images/{name:.*}        
DEBU[0000] Registering OPTIONS,                         
DEBU[0000] Registering HEAD, /containers/{name:.*}/archive 
DEBU[0000] [graphdriver] trying provided driver "btrfs" 
ERRO[0000] Failed to GetDriver graph btrfs /lxc/docker  
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported 

@cpuguy83

@alambike



Copy link


Contributor

Author

warning: /proc/config.gz does not exist, searching other paths for kernel config ...
info: reading kernel config from /boot/config-3.13.0-61-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_MACVLAN: enabled (as module)
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled (as module)
- CONFIG_BRIDGE_NETFILTER: enabled
- 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_MEMCG_KMEM: 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_RESOURCE_COUNTERS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_NETPRIO_CGROUP: enabled (as module)
- 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
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: enabled (as module)
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled (as module)
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: enabled (as module)
  - "overlay":
    - CONFIG_OVERLAY_FS: missing
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

@Julio-Guerra

More or less the same happened to me after switching to debian stretch which is now under linux 4.1 and since aufs support is dropped from debian 9 packaging (https://lists.debian.org/debian-kernel/2014/12/msg00136.html), I had to switch to overlayfs. I now have to compile aufs module to export my images and import them back to docker with overlayfs…

For the record, check-config.sh script returns :

warning: /proc/config.gz does not exist, searching other paths for kernel config ...
info: reading kernel config from /boot/config-4.1.0-1-amd64 ...

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_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_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_IOSCHED_CFQ: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: missing
- 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 (as module)
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled (as module)
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled (as module)
    - CONFIG_DM_THIN_PROVISIONING: enabled (as module)
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled (as module)
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

@alambike



Copy link


Contributor

Author

@cpuguy83

@dustinlacewell

Can confirm. Same behavior as above using btrfs. Installing the binary directly fixed the issue.

@thaJeztah

@tianon

https://github.com/docker/docker/blob/166412e529b3d2d49456fb27c117fa714d7aec16/contrib/builder/deb/generate.sh#L66-L73 has the relevant comments for why those are there:

  # - libdevmapper-dev is missing critical structs (too old)

  # - btrfs-tools is missing "ioctl.h" (too old), so it's useless
  #   (since kernels on precise are old too, just skip btrfs entirely)

The packages in Ubuntu 12.04 are too old to properly support compiling Docker with support for either devicemapper or btrfs, but with how old 12.04 is now (and especially with how old the kernels there are), using btrfs is somewhat shaky too. If someone could convince an Ubuntu developer to maintain btrfs-tools in precise-backports, we could consider changing this, but as-is we really don’t have a lot of choice here.

I would highly recommend upgrading any system still running 12.04 to at least 14.04 ASAP.

@alambike



Copy link


Contributor

Author

OK, good to know, thanks for the info.
I have the ubuntu-precise in my older laptop, and have installed the HWE to update my kernel to 3.13, but the btrfs-tool package remains in a older version.

@allamand

I have similar issue after upgrading a kernel of my ubuntu 14.04 to kernel 3.16 using this tuto http://ubuntuhandbook.org/index.php/2014/08/install-upgrade-linux-kernel-3-16/

docker-machine can’t manage to configure properly my docker daemon

INFO[0000] API listen on /var/run/docker.sock           
WARN[0000] 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. 
/var/run/docker.sock is up
WARN[0000] XFS is not supported in your system. Either the kernel doesnt support it or mkfs.xfs is not in your PATH. Defaulting to ext4 filesystem 
WARN[0008] Running modprobe bridge br_netfilter failed with message: modprobe: WARNING: Module br_netfilter not found.
insmod /lib/modules/3.16.0-031600-generic/kernel/net/llc/llc.ko 
insmod /lib/modules/3.16.0-031600-generic/kernel/net/802/stp.ko 
insmod /lib/modules/3.16.0-031600-generic/kernel/net/bridge/bridge.ko 
, error: exit status 1 
INFO[0008] Firewalld running: false                     
INFO[0008] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address 
WARN[0008] Your kernel does not support swap memory limit. 
INFO[0008] Loading containers: start.                   

INFO[0008] Loading containers: done.                    
INFO[0008] Daemon has completed initialization          
INFO[0008] Docker daemon                                 commit=a34a1d5 execdriver=native-0.2 graphdriver=devicemapper version=1.9.1
INFO[0008] GET /v1.21/version                           
INFO[0009] GET /v1.21/version                           
INFO[0010] Processing signal 'terminated'               
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported 

@thaJeztah

@merwan

I upgraded from Debian Jessie to testing and I’m now using linux-image-4.2 and I encountered the same kind of issue with a missing aufs driver.

A quick fix is to delete the docker aufs folder. You might lose some data, so please do it with care!

sudo rm -rf /var/lib/docker/aufs
MkhIr, AlexZeitler, fraggys, sayanh, epsniff, ctaggart, yngvark, watermelonpizza, tantra35, lgaticaq, and 70 more reacted with thumbs up emoji
iahmad-khan, naroga, nicoCalvo, TimonPeng, SlothOfAnarchy, mritzmann, majgis, andreas-hartmann, a33151, Rohlik, and Wang-Kai reacted with laugh emoji
tshu-w, naroga, TamirTian, nicoCalvo, sim51, TimonPeng, spmaniato, danielborges93, vojvodics, mritzmann, and 9 more reacted with hooray emoji
mritzmann, majgis, andreas-hartmann, mathieufrh, TroyDowling, Wang-Kai, and IgnacioPro reacted with heart emoji
bastienjalbert and Wang-Kai reacted with rocket emoji

@YesThatAllen

Curious what some data might include…

@merwan

@YesThatAllen : you may lose all your containers and images. If you can rebuild them easily then it’s not really a problem.
I first switched to device-mapper driver but I encountered another issue which filled up my / partition. I’m now using btrfs, I hope it will work well…

@YesThatAllen

Thanks @merwan

In my case, removing the aufs folder set up a failure where docker couldn’t find an ID.

A dose of rm -rf /var/lib/docker/ and a complete reinstall of docker-engine made things right without real data loss.

VGerris, felixsteghofer, thnee, mcorbe, cank, lylex, AAlvz, vc5, hsz, ktraff, and 11 more reacted with thumbs up emoji
ryanjdillon and devops-team-92 reacted with hooray emoji

@dradux

Thanks @merwan for the quick fix
FYI, I /var/lib/docker mounted as a xfs partition which was working fine with an older version of docker but an upgrade to 1.9.1 caused a «docker error initializing graphdriver: driver not supported». I uninstalled all of docker-engine and cleaned the /var/lib/docker directory. Then reinstalled docker-image and all is working fine now.

@mglantz

I hit this when upgrading from Red Hat Enterprise Linux 7.1 to 7.2 which took me from docker-1.6.0-11.el7.x86_64 to docker-1.8.2-8.el7.x86_64. To get this solved, I had to do:

systemctl stop docker
rm -rf /var/lib/docker
lvremove /dev/volumegroup/docker-pool
docker-storage-setup
systemctl start docker

davicdsalves, jposton96a, svola, madisonleavo, StanSun, foxundermoon, twatolla, inviscid, pgampe, yanue, and 7 more reacted with thumbs up emoji
jzcruiser and rockdaboot reacted with laugh emoji

@linas

This one bit me too, its now 6 months later.

@thaJeztah

@linas it’s not a bug; this error is because a graph driver that was previously used is no longer available, or multiple «graph» directories were found (e.g. directories for both aufs and devicemapper were found). Instead of «randomly» picking one of them (leading to «where have my images gone»?), Docker will refuse to start, and ask you to either specify which graph-driver you want to use, or remove the directory of the graph-driver you’re no longer using.

If the graphdriver you used previously is no longer working on your system (which may be the result of, e.g., upgrading your kernel, without installing the new dependencies for your graph-driver — people using aufs can run into this if linux-image-extra is not installed for the new kernel version), at least you know that it’s not supported, so that something needs to be addressed before docker is started.

@linas

@thaJeztah I guess that’s a reasonable explanation. Let me mention my use case: every few months, I have a need to fiddle with Docker. I do nothing special to manage it — basically, ignore it — I installed it a few years ago, and have been doing nothing but apt-get upgrade ever since. Perhaps there have been new kernels, I don’t recall. I am using a stock, default, mostly-unmodified version of ubuntu trusty and that’s that. A few days ago, I had to dust off some old Docker images and was surprised by the error. Google search on the error string lead me here. I have no clue what a graph driver is, I just rm -r * ‘ed the entire /var/lib/docker directory, and was back in business. No harm done.

So really, this was a ‘me-too’ +1 type post: sometimes, QA teams are interested in finding out how many users/customers are being bitten by some particular bug/issue/feature, so as to focus appropriate attention on it.

@thaJeztah

@bogste

The answer at #14026 (comment) worked for me.

I just upgraded the Kernel to 4.9 and was getting:

[graphdriver] prior storage driver aufs failed: driver not supported

Moved the /var/lib/docker/aufs folder to my $HOME_DIR/Backups/docker (just in case) and was able to run service docker stop/start. Now it starts up as it should!

@lrbnew

I have met this problem when I change kernel and reboot my Centos7.2 server , but I solved it:

Just only remove the file in /var/lib/docker , then docker daemon will work
rm -rf /var/lib/docker

@nathanchere

Still an issue on a clean docker install so much later.
rm -r /var/lib/docker still fixes it, but odd to have it occur on a first time install on a clean machine?

@lordfolken

hit the same issue installing docker-ce on debian jessie today. rm -rfing the docker lib dir fixes it.

@cpuguy83

rm -rf isn’t fixing anything, it’s just removing your old data dir and as such automatically selecting a new storage driver.
I suspect you were using some driver like AUFS and performed a kernel upgrade without also updating the AUFS kernel mod for the new kernel.

@metyl

I had the same problem on Ubuntu 16.10 and have to change driver from autf to overlay2 in /etc/systemd/system/docker.service.d/10-machine.conf.

leviwilson, nimbosa, azappella, jar3b, rabbagliettiandrea, duduik, Vzzarr, basitsattar, scitor, caub, and aroman reacted with thumbs up emoji

@azappella

@jar3b

@metyl Thank you! Your solutions works nice on Debian Stretch after upgrading kernel 4.5->4.9.

@ghost

@asoltesz

@gbrayut

I got the same error initializing graphdriver: driver not supported message after trying to use docker-machine to connect to a docker instance in an lxd container. Looks like docker-machine creates a /etc/systemd/system/docker.service.d/10-machine.conf file with --storage-driver aufs. Neither aufs or overlay2 are suppored in lxd containers, so you have to change it to use --storage-driver vfs instead. Then systemctl daemon-reload && systemctl start docker should start the daemon again.

@maniankara

@darkn3rd

Reproduces 100% with Gentoo:

vagrant init emerge generic/gentoo && vagrant up
vagrant ssh
sudo su -
emerge app-emulation/docker
/etc/init.d/docker start
cat /var/log/docker.log

@thaJeztah

@darkn3rd Gentoo provides their own packages for Docker, so it may be worth opening a ticket there. Having said that, if you report the issue, make sure to include relevant logs if possible; the issue that’s reported in this ticket is not really a bug, but a configuration issue (e.g., a missing dependency on the system, or the underlying filesystem not supported for the selected storage driver).

@xueerfei

i got the same error, when i catch the log ,i find those : » Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network»

run ifconfig it really didn’t have docker0 device.
so use this can solve the problem:

sudo ip link add name docker0 type bridge
sudo ip addr add dev docker0 172.17.0.1/16

in fact, i find the virtual bridge docker0 will be create auto when install docker in some machine, but not in auto install in other ,may be it has relationship with OS kernel

@kvdv

Same problem after updating Docker on Mac OS.
Solved by simply resetting Docker to factory settings.

@thaJeztah

@henning

@thaJeztah I believe I have the same problem as kvdv, this might be the root cause of docker/for-mac#3460 and a bunch of others referred there, so this seems to affect quite a bunch of people.
Is factory reset the only way to go there? Or is there an upgrade path (cannot see one in the release notes)?
Any hints on where to look / what to do? I’d love to upgrade without losing data, and if I find a way, I’d document it and let the others looking for the solution know, too…

@steinarb

@linas , you’re a life saver! rm -r /var/lib/docker did the trick to get us back in business!

Removing /var/lib/docker helped me today when «systemctl start docker» failed on a fresh install of docker.io on debian buster.

The /var/lib/docker directory contained lots of stuff going back to 2016, so I have probably installed earlier versions and thrown them out.

(The information that /var/lib/docker should be nuked on a debian system, and why, can also be found in /usr/share/doc/docker/NEWS.debian.gz )

@Binney

I’m going to post here because I just spent an embarrassing amount of time trying all the solutions in this thread but my fix was slightly different.

I’m trying to build a Docker image with AWS CodeBuild on Ubuntu, using the default CodeBuild managed image aws/codebuild/standard:4.0. I was getting a bunch of

ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
29
[...]
failed to start daemon: error initializing graphdriver: driver not supported

Turns out CodeBuild has a flag for enabling «Privileged mode», which is off by default. I switched it on and the problem vanished.

In fairness to AWS, it does tell you this on the GUI (hidden behind an «Override image» button):

Enable this flag if you want to build Docker images or want your builds to get elevated privileges.

But I was using Terraform and didn’t spot the flag in amongst all the other documented config options. Anyway — just in case it saves anyone else some pain.

@alejandroarevalo

I’m going to post here because I just spent an embarrassing amount of time trying all the solutions in this thread but my fix was slightly different.

I’m trying to build a Docker image with AWS CodeBuild on Ubuntu, using the default CodeBuild managed image aws/codebuild/standard:4.0. I was getting a bunch of

ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
29
[...]
failed to start daemon: error initializing graphdriver: driver not supported

Turns out CodeBuild has a flag for enabling «Privileged mode», which is off by default. I switched it on and the problem vanished.

In fairness to AWS, it does tell you this on the GUI (hidden behind an «Override image» button):

Enable this flag if you want to build Docker images or want your builds to get elevated privileges.

But I was using Terraform and didn’t spot the flag in amongst all the other documented config options. Anyway — just in case it saves anyone else some pain.

I cannot describe the happiness that finding your post has brought me!!!!! Thank you so much for this wonderful tip!!, I’ve been getting crazy overcome this problem in the past days!! and it would have taken me way more days to realize I needed privilaged execution of my docker container.

Thanks again!!!

@gangyahaidao

try this

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh —mirror Aliyun

run Docker CE
systemctl enable docker
systemctl start docker

@Parlendir

Just for helping others :
rm — r /var/lib/docker is a bit brutal
Do a ls — a /var/lib/docker
Then journalctl -u docker
The error could be : enable to initialize graph driver
Which is misleading.

I had to rm -r /var/lib/docker/overlay2
To got my docker.service to start again. There is no need, as a 1st try, to rm other folders like : images, containers…

So try to do a step by step rm

@andreprawira

I’m going to post here because I just spent an embarrassing amount of time trying all the solutions in this thread but my fix was slightly different.

I’m trying to build a Docker image with AWS CodeBuild on Ubuntu, using the default CodeBuild managed image aws/codebuild/standard:4.0. I was getting a bunch of

ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
29
[...]
failed to start daemon: error initializing graphdriver: driver not supported

Turns out CodeBuild has a flag for enabling «Privileged mode», which is off by default. I switched it on and the problem vanished.

In fairness to AWS, it does tell you this on the GUI (hidden behind an «Override image» button):

Enable this flag if you want to build Docker images or want your builds to get elevated privileges.

But I was using Terraform and didn’t spot the flag in amongst all the other documented config options. Anyway — just in case it saves anyone else some pain.

this solves the problem for my issue in codebuild

Содержание

  1. Error starting daemon: error initializing graphdriver: driver not supported #2914
  2. Comments
  3. Expected behavior
  4. Actual behavior
  5. Information
  6. Steps to reproduce the behavior
  7. Steps to reproduce the new behavior
  8. Error initializing graphdriver while starting daemon by systemd on CentOS 7.2 #22685
  9. Comments
  10. Option 1. (recommended) use the overlay2 storage driver, and remove the devicemapper configuration
  11. Option 2. Override the automatic storage-driver selection, and specify that «devicemapper» should be used
  12. Arch Linux
  13. #1 2016-02-24 22:52:14
  14. [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  15. #2 2016-02-25 00:19:31
  16. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  17. #3 2016-02-26 01:21:51
  18. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  19. #4 2016-02-26 01:39:16
  20. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  21. #5 2016-02-26 03:04:28
  22. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  23. #6 2016-02-26 21:44:55
  24. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  25. #7 2016-02-26 23:04:01
  26. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  27. #8 2016-02-26 23:10:25
  28. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  29. #9 2016-02-26 23:19:45
  30. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
  31. #10 2016-02-27 00:51:08
  32. Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Error starting daemon: error initializing graphdriver: driver not supported #2914

Docker 2.0.0.0 crashes. Just updated from the previous version.

  • I have tried with the latest version of my channel (Stable or Edge)
  • I have uploaded Diagnostics
  • Diagnostics ID: AD0B9DFA-B7F0-4D33-92B9-E1E4E702635A/20181119215306

Expected behavior

Docker should start normally.

Actual behavior

Docker crashes before starting showing this:

Information

The problem appear with the latest update 2.0.0.0.
This is the error: «Error starting daemon: error initializing graphdriver: driver not supported«

  • Windows Version: Windows 10 Professional
  • Docker for Windows Version: 2.0.0.0-win78

Steps to reproduce the behavior

  1. Updated Docker to 2.0.0.0-win78
  2. Try to start the service
  3. Crash

The text was updated successfully, but these errors were encountered:

After cold restarting the Operating System, a new error is displayed:

Diagnostics ID: AD0B9DFA-B7F0-4D33-92B9-E1E4E702635A/20181119232054

New error displayed:

Steps to reproduce the new behavior

  1. Disabled Docker atuomatic restart in the settings
  2. Operating System cold restart
  3. Tried to start Docker (Crash)
  4. Tried to restart Docker (Crash)

I got the same first error after restarting OS after upgrading Docker to latest version yesterday.

You can check the Hyper-V, i’ve got the same error and i fixed by fixing Hyper-V component

Which component? I have same error on fresh setup. v2.0.0.0-win78

I’m having this error too. Not sure what you mean by «fixing Hyper-V component» — i tried disabling & enabling hyperv in the windows features but still have this error.

I only get the issue when I’m logged into docker for windows. Restarting it and not entering my login information and it seems to be able to run some of the commands such as docker build just fine.

Trying to start an image asks me to log in.

Logging in without trying to start anything will instantly cause the error.

Only started when I upgraded to v2.0.0.0-win78 today.

having the same issue on my desktop, not on my laptop. Docker will start if I reset it, but Kitematic fails to find native virtualization. Maybe a change with windows?

Hyper-V itself is working just fine (tested with new image)

You can check the Hyper-V, i’ve got the same error and i fixed by fixing Hyper-V component

I disabled Hyper-V, restarted, enabled Hyper-V again, and the problem still persists.

I have several images that I can not access now because of updating to the latest version 2.0.0.0 win-78.

Please help us. Thanks.

Diagnostics ID: AD0B9DFA-B7F0-4D33-92B9-E1E4E702635A/20181119215306

So. I started Hyper-V Manager, went to Virtual Switch Manager, created an external switch, reset to factory defaults, stopped docker, killed the Docker for Windows and Docker.Watchguard processes, and restarted Docker. It started up.

Reset to factory defaults works, but every image is destroyed.
So always backup your images before upgrading.

Have you made any changes to your Daemon under Settings — possibly to move the data root folder or to change the storage driver?

Have you made any changes to your Daemon under Settings — possibly to move the data root folder or to change the storage driver?

It was only the upgrade, without any additional changes.

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30d of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

Источник

Error initializing graphdriver while starting daemon by systemd on CentOS 7.2 #22685

Output of docker version :

Output of docker info :

Additional environment details (AWS, VirtualBox, physical, etc.):

Steps to reproduce the issue:

  1. Install docker-engine on CentOS 7.2: yum install docker-engine
  2. Start it: sudo systemctl start docker

Describe the results you received:

docker engine didn’t start.

Describe the results you expected:

docker engine starts.

Additional information you deem important (e.g. issue happens only occasionally):

journalctl —no-pager -u docker shows this error:

yum package info:

The text was updated successfully, but these errors were encountered:

It looks like you previously ran docker on this host with a different graph-driver;

Because of that, docker refuses to start, because it cannot automatically choose which graph-driver it should use. You need to set the -s daemon option, for example -s=overlay or -s=devicemapper to pick which one you want to use.

You can use a daemon configuration file ( /etc/docker/daemon.json )

To set daemon options.

I’ll close this issue, because this is not a bug, but feel free to comment after I closed

Thanks, @thaJeztah. I agree with this:

It looks like you previously ran docker on this host with a different graph-driver;

Another docker daemon was installed but uninstalled incompletely in the machine. I guess it caused the problem.

I’ve hit this issue by doing the following:

  • upgrading a 1.12.3 that was using —live-restore to 1.13.1 (no issue)
  • moving from a docker.service to a docker.service.d/override.conf file (Both file had the same ExecStart with the «-s devicemapper» option set.)
  • systemctl daemon-reload (no error)
  • rebooting to upgrade the kernel

dockerd didn’t start and I had this partition that I needed to umount /var/lib/docker/aufs && rm -rf !$ by hand after seeing that journalctl -xe said the same thing about graphdriver choices:

/dev/mapper/delve—vg-root on /var/lib/docker/aufs type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)

This should not have happened with the -s devicemapper being explicitly set.

@RRAlex did you verify the service actually saw the -s option? Note that when using an override / drop-in to override ExecStart , you have to explicitly reset the ExecStart , then set the new value, otherwise the value is appended, e.g.;

@thaJeztah I’m pretty sure it was running with the right options because, afterwards, docker was running with devicemapper without any further modifications to systemd.

Though I’ve only tested this once, I’ll come back if it happens again. cheers!

Simple fix :
nano /etc/docker/daemon.json

Save — restart Docker.

I am having same issue of starting docker. What I don’t follow is on three nodes.. via various steps that I did of restart or re-run install steps.. it works.. but the other four it does not.. but I have tried now for a few days and not been able to repeat success.. or better yet.. root cause.

Error: systemctl start docker -> /var/log/messages
Nov 11 11:30:45 icpworker01 dockerd: time=»2018-11-11T11:30:45.802366532-05:00″ level=info msg=»scheme «unix» not registered, fallback to default scheme» module=grpc
Nov 11 11:30:45 icpworker01 dockerd: Error starting daemon: error initializing graphdriver: overlay2: unknown option dm.thinpooldev
Nov 11 11:30:45 icpworker01 systemd: docker.service: main process exited, code=exited, status=1/FAILURE

I guess I am just not seeing and understanding the root cause here.

@penguinpages looks like you configured options for the devicemapper storage-driver, but did not specify that the daemon should use the devicemapper storage driver.

So, what happens is that (if no storage-driver is specified), the daemon automatically selects the best available driver, which is «overlay2» on most current distros.

However, since the options you specified are specific for devicemapper , the daemon refuses to start, because those options are not valid for the overlay2 storage driver.

If possible, I would also recommend using overlay2 instead of devicemapper (the devicemapper storage driver is marked «deprecated», so will be removed in a future release).

To resolve your problem;

Option 1. (recommended) use the overlay2 storage driver, and remove the devicemapper configuration

Also the easiest approach; given that you have no other options configured in your daemon.json , you can simply remove the daemon.json file, and start the docker service.

If you do have other options set in your daemon.json ; remove the storage-opts from your daemon.json

Option 2. Override the automatic storage-driver selection, and specify that «devicemapper» should be used

If you have a specific reason to use devicemapper, and want to continue using it; Add «storage-driver»: «devicemapper» to your daemon.json (see the example in the dockerd reference documentation ).

In your case, the daemon.json then should look like this;

I am new to docker.. so trying to wrap my head around referance design best practices.
What I undestand is their are two volumes needed for docker.. one is for docker deployment of containers (tear down file space). Where containers are deployed.. have scratch but no other real write capabilties (and so IO and capacity sizing is lower for this/these volumes). They are dedicated and mapped to each individual worker or master. And I was using the IBM noted guide that underpinned these as LVM so I could as needed inject more «disk» to underpin more IO as customer would have scale up needs.

The second peice of any docker disk subsystem is the «persistant disk». I have an actual customer where they migrated a datawhere house to containerized version and performance was TERRIBLE.. so much they scrapped the project and moved back to physical systems. But looking at the design it was all about this persitent disk component. A heavy IO, container, and one needing capacity, lives and dies by this design component.

I am still stuck on step one of «What to do for best practice of tear down container volume» but was heading down the path of iSCSI (via the free product IBM Spectrum Control) to automate this and provide performance (in conjunction with iSER for iSCSI). But.. still wrapping head around things so open to constructive redirection of methodology.

Источник

Arch Linux

You are not logged in.

#1 2016-02-24 22:52:14

[SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Hi, I failed to find any info anywhere about this issue so here I am.

I first reported the issue to docker people who said it might be an incompatibility with Go and to point it to you in case it’s the problem (they are investigating my issue too).

To summarize: I have a fresh ArchLinux install, almost nothing going on. I install docker through. I run it’s hello world test. It fails. I discovered this while trying to install Discourse, but apparently it’s Docker or devmapper which fails to «register layer».
It looks like this:

I tried it after reinstalling completely docker, still fails.
I tried to restart the daemon with no success.

(not sure if it’s the right subforum, I can’t find one which is about specific packages)

Last edited by klaim (2016-02-27 01:37:02)

#2 2016-02-25 00:19:31

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

A few things to try (first make sure your user is in the docker group or you are running the docker commands with sudo or as root):

1. Stop Docker, delete /var/lib/docker, restart and then try pulling the image again. Also try another common image such as ubuntu or busybox. Frequently just wiping /var/lib/docker does the trick.

2. Stop Docker, then start from the command line (see /usr/lib/systemd/system/docker.service for the normal options), but set the storage driver option to overlayfs (default is devicemapper) with ‘-s overlayfs’ and run from the command line. Try the image pulls again and see if that changes anything.

Last edited by firecat53 (2016-02-25 00:21:09)

#3 2016-02-26 01:21:51

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Thanks for your time!

A few things to try (first make sure your user is in the docker group or you are running the docker commands with sudo or as root):

My login is part of the docker group and I use sudo too.

1. Stop Docker, delete /var/lib/docker, restart and then try pulling the image again. Also try another common image such as ubuntu or busybox. Frequently just wiping /var/lib/docker does the trick.

I did that already before because it was suggested in some documentations or some answers to other issues.
It was not a success.
I just tried again after updating everything (because there is a new version of the docker package that someone pointed on github that it could have fixed it).
It was not a success either.

2. Stop Docker, then start from the command line (see /usr/lib/systemd/system/docker.service for the normal options), but set the storage driver option to overlayfs (default is devicemapper) with ‘-s overlayfs’ and run from the command line. Try the image pulls again and see if that changes anything.

If I understand correctly, the command I must run is

If I run just this (with sudo) I get

If I add ‘-s overlayfs’ I get the same result.

Then I tried to modify the .service file by just adding these arguments to the original start command.
I started docker through systemctl, then got this error:

‘journalctl -u docker’ shows:

I return docker’s service file to it’s initial state now.

Basically, no progress as overlayfs seems to not work as is with docker.

Last edited by klaim (2016-02-26 01:27:51)

#4 2016-02-26 01:39:16

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

It was suggested on GitHub issue comments that I try the very new version which fix a compatibility issue with the Go version used by docker, but it seems unrelated to my problem which persists: https://github.com/docker/docker/issues/20653

#5 2016-02-26 03:04:28

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Sorry, I didn’t test before I wrote The overlay module needs to be loaded first. Although I’m still not sure why the default devicemapper storage driver isn’t working for you. What filesystem are you using? I can’t test the overlay storage driver because I’m using BTRFS and that’s not supported. You need to be using something like ext4 as the ‘backing filesystem’.

Try this first and see what errors it throws:

#6 2016-02-26 21:44:55

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Sorry, I didn’t test before I wrote The overlay module needs to be loaded first. Although I’m still not sure why the default devicemapper storage driver isn’t working for you. What filesystem are you using?

I know almost nothing about linux filesystems, unfortunately.

I can’t test the overlay storage driver because I’m using BTRFS and that’s not supported. You need to be using something like ext4 as the ‘backing filesystem’.

I do not know how to check the ‘backing filesystem’?

Try this first and see what errors it throws:

Looks like argument is ignored:

I have no idea what this means.

Last edited by klaim (2016-02-26 22:30:33)

#7 2016-02-26 23:04:01

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Wow, what kernel are you using?? That might be part of the problem. You’re missing the ‘nf_nat’ module (see the error for devicemapper), and the kernel you’re using doesn’t have the overlayfs module available. You’re going to have to either switch kernels (stock Arch kernel works fine) or learn how to compile a kernel with the correct modules

You’re using ext4 which is fine for use with devicemapper or overlayfs.

#8 2016-02-26 23:10:25

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

Wow, what kernel are you using?? That might be part of the problem. You’re missing the ‘nf_nat’ module (see the error for devicemapper), and the kernel you’re using doesn’t have the overlayfs module available. You’re going to have to either switch kernels (stock Arch kernel works fine) or learn how to compile a kernel with the correct modules

I have no idea why there would be an unusual kernel, but this is a Kimsuffi (OVH) box so maybe the inital image was modified. Onced installed I upgraded the whole thing but never thought about upgrading a kernel (I thought it was automatic with pacman upgrade?)
Anyway, I’ll look for how to switch kernel then.

#9 2016-02-26 23:19:45

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

I don’t know what is happening. Still searching for how to change kernel.

#10 2016-02-27 00:51:08

Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install

It was indeed the kernel version.
I had to learn on-the-fly how to install an image and then how to setup grub to actually boot with it (I didn’t know it was grub doing this. )

╰─$ sudo docker run hello-world
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
03f4658f8b78: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the «hello-world» image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com

I will now proceed to try to (finally!!) install my discourse instance.

BTW, would there be a way to automatically detect this kind of issues better in the future?

Источник

  • #1

Hello! Recently I’ve updated one of my servers to PVE 7 and encountered a problem with on of LXC containers on it. There was a docker service UNMS (management software for network equipment) and it stoped working. In syslog I’ve found error

Code:

failed to start daemon: error initializing graphdriver: driver not supported

LXC config:

Code:

arch: amd64
cores: 4
features: nesting=1
hostname: unms-srv
memory: 4096
net0: name=eth0,bridge=vmbr0,firewall=1,gw=172.16.100.1,hwaddr=86:A7:81:E8:E0:5D,ip=172.16.100.35/24,tag=4000,type=veth
onboot: 1
ostype: ubuntu
rootfs: local-zfs:subvol-116-disk-0,size=16G
swap: 4096
lxc.cgroup.devices.allow: a
lxc.cap.drop:

Any help would be appreciated.

  • #2

I think I’ve found general error in syslog

Code:

Dec 24 03:40:52 unms-srv modprobe[153]: modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/5.11.22-5-pve/modules.dep.bin'
Dec 24 03:40:52 unms-srv modprobe[153]: modprobe: FATAL: Module overlay not found in directory /lib/modules/5.11.22-5-pve

However

Code:

root@pve:~# lsmod | grep overlay
overlay               126976  0

  • #3

Any help would be appreciated.

Also the help that says: Don’t run Docker on your hypervisor? Every PVE update can break it, because it is not supported and will never be supported. Also, your lxc.cgroup.devices.allow: a opens up your system to be hacked from inside the LX(C) container, which is a big no-go.

  • #4

Also the help that says: Don’t run Docker on your hypervisor? Every PVE update can break it, because it is not supported and will never be supported. Also, your lxc.cgroup.devices.allow: a opens up your system to be hacked from inside the LX(C) container, which is a big no-go.

I don’t like docker either but this particular service is available in docker only… I’ve figured out that problem is in aufs module which is no longer available in PVE kernel.

  • #5

I don’t like docker either but this particular service is available in docker only… I’ve figured out that problem is in aufs module which is no longer available in PVE kernel.

aufs is no longer available in the kernel and it is deprecated in Docker since 2019.

Docker perfectly works inside of an VM (KVM/QEMU) without any problems and with maximum security (compared to running it on the hypervisor)

  • #6

Here’s an experience I found so interesting that I registered a forum account to share it:

I had the exact same error («Error starting daemon: error initializing graphdriver: driver not supported»), but it was also preceded by

Code:

[graphdriver] prior storage driver overlay2 failed: driver not supported

.

But in my case this happened on a normal reboot with zero updates applied.

Thankfully, I remembered I did something out of the ordinary while testing in the previous 12 hours: I had created a named pipe (using `mkfifo`) inside an Ubuntu LXC container.

I deleted it and the docker instances inside all the containers started working again.

Yes I know: don’t run Docker inside LXC. But I’m comfortable with the tradeoff of it breaking at some point if it means I can have all the dockerfiles exposed on the local filesystem and don’t have to have the overhead of 10+ VMs.

  • #7

i would not recommend running docker inside pve host OS or inside LXC. Better use a VM for that.

  • #8

i would not recommend running docker inside pve host OS or inside LXC. Better use a VM for that.

welcome to the choir ;)

  • #9

i would not recommend running docker inside pve host OS or inside LXC. Better use a VM for that.

why VM is better for that?
I’m using CT for that and I feel it’s ok, I wonder what I don’t know about it,I’m no expert in that field :)

  • #10

docker in lxc is more likely to break because of updates

  • #11

docker in lxc is more likely to break because of updates

… and the speed.

I also use it inside LX(C) containers and on the hypervisor itself and it makes a huge difference if your are e.g. on ZFS. On the hypervisor itself, Docker can use ZFS as its underlying data store, which creates each container layer as snapshotted dataset and adding stacks is very simple an just uses the COW architecture of ZFS, whereas without ZFS inside the LX(C) container, you currently cannot store directly inside of ZFS due to the fact that ZFS is currently not capable of delegating nested features to containers without breaking security. You have to create overlayfs layers, which are not so efficient and fast so that your Docker inside of LXC works a little bit slower. I’m looking forward to having this capability inside of LXC which will be a game changer for performance.

At home, I run Home Assistant inside of LCX Docker because I wanted a separated network stack for HA and just pulling the image is magnitudes slower than pulling the image on the hypervisor. In bigger environments I just run VMs for docker with ZFS inside.

Thanks for your time!

firecat53 wrote:

A few things to try (first make sure your user is in the docker group or you are running the docker commands with sudo or as root):

My login is part of the docker group and I use sudo too.

1. Stop Docker, delete /var/lib/docker, restart and then try pulling the image again. Also try another common image such as ubuntu or busybox. Frequently just wiping /var/lib/docker does the trick.

I did that already before because it was suggested in some documentations or some answers to other issues.
It was not a success.
I just tried again after updating everything (because there is a new version of the docker package that someone pointed on github that it could have fixed it).
It was not a success either.

2. Stop Docker, then start from the command line (see /usr/lib/systemd/system/docker.service for the normal options), but set the storage driver option to overlayfs (default is devicemapper) with ‘-s overlayfs’ and run from the command line. Try the image pulls again and see if that changes anything.

Scott

If I understand correctly, the command I must run is

 /usr/bin/docker daemon -H fd:// 

If I run just this (with sudo) I get

 FATA[0000] No sockets found 

If I add ‘-s overlayfs’ I get the same result.

I tried:

 
╰─$ sudo docker daemon -s overlayfs                                                                                               1 ↵
ERRO[0000] Failed to GetDriver graph overlayfs /var/lib/docker
FATA[0000] Error starting daemon: error initializing graphdriver: driver not supported

Then I tried to modify the .service file by just adding these arguments to the original start command.
I started docker through systemctl, then got this error:

╰─$ sudo systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

‘journalctl -u docker’ shows:

Feb 26 02:24:12 klaimslab systemd[1]: Starting Docker Application Container Engine...
Feb 26 02:24:12 klaimslab docker[27819]: time="2016-02-26T02:24:12.793512136+01:00" level=error msg="Failed to GetDriver graph overlayfs /var/lib/docker"
Feb 26 02:24:12 klaimslab docker[27819]: time="2016-02-26T02:24:12.793637730+01:00" level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"
Feb 26 02:24:12 klaimslab systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Feb 26 02:24:12 klaimslab systemd[1]: Failed to start Docker Application Container Engine.
Feb 26 02:24:12 klaimslab systemd[1]: docker.service: Unit entered failed state.
Feb 26 02:24:12 klaimslab systemd[1]: docker.service: Failed with result 'exit-code'.

I return docker’s service file to it’s initial state now.

Basically, no progress as overlayfs seems to not work as is with docker.

Last edited by klaim (2016-02-26 01:27:51)

Понравилась статья? Поделить с друзьями:
  • Failed to start cls lolz x86 exe как исправить
  • Failed to start a high performance web server and a reverse proxy server как исправить
  • Failed to solve rpc error code unknown desc failed to solve with frontend dockerfile v0
  • Failed to solve rpc error code unknown desc executor failed running
  • Failed to sign hash ошибка исполнения функции 0x8007065b