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
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
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
Name-less, cawa-93, LinboLen, hex0cter, nkkollaw, riverszhang89, Aresona, jcalfee, Karl-Robinson, ingobaab, and 68 more reacted with thumbs down emoji
Failed to GetDriver graph btrfs /lxc/docker
Where is it getting this /lxc/docker
path from?
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)
@alambike Ah, interesting.
Does this work if you do docker -d -D -s btrfs -g /lxc/docker
?
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.
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
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
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
Copy link
Contributor
Author
Can confirm. Same behavior as above using btrfs. Installing the binary directly fixed the issue.
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.
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.
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
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
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
Curious what some data
might include…
@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…
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.
ryanjdillon and devops-team-92 reacted with hooray emoji
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.
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
jzcruiser and rockdaboot reacted with laugh emoji
This one bit me too, its now 6 months later.
@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.
@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.
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!
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
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?
hit the same issue installing docker-ce on debian jessie today. rm -rfing the docker lib dir fixes it.
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.
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
.
@metyl Thank you! Your solutions works nice on Debian Stretch after upgrading kernel 4.5->4.9.
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.
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
@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).
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
Same problem after updating Docker on Mac OS.
Solved by simply resetting Docker to factory settings.
@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…
@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 )
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’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!!!
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
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
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
Содержание
- Error starting daemon: error initializing graphdriver: driver not supported #2914
- Comments
- Expected behavior
- Actual behavior
- Information
- Steps to reproduce the behavior
- Steps to reproduce the new behavior
- Error initializing graphdriver while starting daemon by systemd on CentOS 7.2 #22685
- Comments
- Option 1. (recommended) use the overlay2 storage driver, and remove the devicemapper configuration
- Option 2. Override the automatic storage-driver selection, and specify that «devicemapper» should be used
- Arch Linux
- #1 2016-02-24 22:52:14
- [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #2 2016-02-25 00:19:31
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #3 2016-02-26 01:21:51
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #4 2016-02-26 01:39:16
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #5 2016-02-26 03:04:28
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #6 2016-02-26 21:44:55
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #7 2016-02-26 23:04:01
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #8 2016-02-26 23:10:25
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #9 2016-02-26 23:19:45
- Re: [SOLVED] Docker’s Hello-World test fails after fresh ArchLinux install
- #10 2016-02-27 00:51:08
- 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
- Updated Docker to 2.0.0.0-win78
- Try to start the service
- 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
- Disabled Docker atuomatic restart in the settings
- Operating System cold restart
- Tried to start Docker (Crash)
- 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:
- Install docker-engine on CentOS 7.2: yum install docker-engine
- 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)