当/var/lib/docker/overlay2
目录位于overlay2 fs上时,Docker无法以以下内容开头:
level=error msg="'overlay2' is not supported over overlayfs" storage-driver=overlay2
level=error msg="[graphdriver] prior storage driver overlay2 failed: backing file system is unsupported for this graph driver"
Error starting daemon: error initializing graphdriver: backing file system is unsupported for this graph driver
相关代码似乎是https://github.com/moby/moby/blob/master/daemon/graphdriver/overlay2/overlay.go#L162,但没有说明原因!
答案 0 :(得分:0)
我认为您可以使用/var/lib/docker/overlay2
检查xfs_info
目录,是否可以支持overlay2
。
例如,
$ xfs_info /var/lib/docker/overlay2 | grep ftype
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
如果输出为ftype=1
,则可以支持overlay2
。
有关更多详细信息,请参见What is d_type and why Docker overlayfs need it。
希望它能对您有所帮助。 :^)
答案 1 :(得分:0)
正如作者在GitHub commit comment中所解释的那样,覆盖层上的覆盖会导致“非常古怪的行为”,因此Docker当前不受支持。
不清楚您为什么要尝试这样做。但是一个常见的原因是在Docker内部运行Docker。在这种情况下,您只需将主机上的文件夹安装到容器内的/var/lib/docker
即可,例如:
docker run -d -v /my/storage:/var/lib/docker docker-in-docker-image
此外,在为Docker-in-Docker构建映像时,向您的Dockerfile添加VOLUME /var/lib/docker
语句,以确保该文件夹是安装点。官方docker:dind
图片也是如此:https://github.com/docker-library/docker/blob/master/18.09/dind/Dockerfile#L40