不支持 overlay2 驱动程序
overlay2 driver not supported
我正在 运行安装 Docker AKS 集群中的 GitHub 代理。我可以 运行 使用 VFS 存储驱动程序成功,但是我想使用 Overlay 2,因为它更快。
我收到以下消息:
sudo dockerd &
...
INFO[2021-06-12T22:38:41.674415376Z] containerd successfully booted in 0.029163s
INFO[2021-06-12T22:38:41.692284696Z] parsed scheme: "unix" module=grpc
INFO[2021-06-12T22:38:41.692316597Z] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2021-06-12T22:38:41.692340397Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc
INFO[2021-06-12T22:38:41.692352097Z] ClientConn switching balancer to "pick_first" module=grpc
INFO[2021-06-12T22:38:41.693462211Z] parsed scheme: "unix" module=grpc
INFO[2021-06-12T22:38:41.693484611Z] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2021-06-12T22:38:41.693505611Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc
INFO[2021-06-12T22:38:41.693519612Z] ClientConn switching balancer to "pick_first" module=grpc
ERRO[2021-06-12T22:38:41.702131518Z] failed to mount overlay: invalid argument storage-driver=overlay2
INFO[2021-06-12T22:38:41.702558423Z] stopping event stream following graceful shutdown error="context canceled" module=libcontainerd namespace=plugins.moby
INFO[2021-06-12T22:38:41.702674724Z] stopping healthcheck following graceful shutdown module=libcontainerd
failed to start daemon: error initializing graphdriver: driver not supported
我的 /etc/docker/daemon.json 设置:
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
文件系统类型:
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 49G 20G 29G 41% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 ext4 49G 20G 29G 41% /etc/hosts
shm tmpfs 64M 8.0K 64M 1% /dev/shm
tmpfs tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
内核版本:5.4.0-1046-azure
overlay overlay 49G 20G 29G 41% /
从文件系统来看,您似乎 运行 在一个容器中。使用 Docker-in-Docker,通常您会在 /var/lib/docker 处安装一个卷,以便从容器的覆盖文件系统中获取 docker 文件系统,因为您无法进行覆盖在叠加层之上。 docs on storage driver backing filesystems 显示每个存储驱动程序支持的底层文件系统。
如果您不能为 docker 实现卷挂载,那么您只能使用 vfs,它可以在任何地方运行但非常占用磁盘空间(为每一层复制整个文件系统),或者 fuse- overlayfs 通常用于无根安装,可能不适用于您的用例。
如果您在 Xen 主机上的 VM 内,则需要为 VM 激活 pygrub 并在 VM 内安装它自己的内核(而不是使用主机的内核)
参见:https://wiki.debian.org/PyGrub
- 虚拟机内部:
mkdir /boot/grub
apt-get install -y linux-image-amd64
cat > /boot/grub/menu.lst << EOF
default 0
timeout 2
title Debian GNU/Linux
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro
initrd /initrd.img
title Debian GNU/Linux (recovery mode)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro single
initrd /initrd.img
EOF
- 注释掉
#kernel = '/boot/vmlinuz-4.19.0-20-amd64'
#extra = 'elevator=noop'
#ramdisk = '/boot/initrd.img-4.19.0-20-amd64'
并添加:
bootloader = 'pygrub'
- 重启虚拟机
我正在 运行安装 Docker AKS 集群中的 GitHub 代理。我可以 运行 使用 VFS 存储驱动程序成功,但是我想使用 Overlay 2,因为它更快。 我收到以下消息:
sudo dockerd &
...
INFO[2021-06-12T22:38:41.674415376Z] containerd successfully booted in 0.029163s
INFO[2021-06-12T22:38:41.692284696Z] parsed scheme: "unix" module=grpc
INFO[2021-06-12T22:38:41.692316597Z] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2021-06-12T22:38:41.692340397Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc
INFO[2021-06-12T22:38:41.692352097Z] ClientConn switching balancer to "pick_first" module=grpc
INFO[2021-06-12T22:38:41.693462211Z] parsed scheme: "unix" module=grpc
INFO[2021-06-12T22:38:41.693484611Z] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2021-06-12T22:38:41.693505611Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc
INFO[2021-06-12T22:38:41.693519612Z] ClientConn switching balancer to "pick_first" module=grpc
ERRO[2021-06-12T22:38:41.702131518Z] failed to mount overlay: invalid argument storage-driver=overlay2
INFO[2021-06-12T22:38:41.702558423Z] stopping event stream following graceful shutdown error="context canceled" module=libcontainerd namespace=plugins.moby
INFO[2021-06-12T22:38:41.702674724Z] stopping healthcheck following graceful shutdown module=libcontainerd
failed to start daemon: error initializing graphdriver: driver not supported
我的 /etc/docker/daemon.json 设置:
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
文件系统类型:
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 49G 20G 29G 41% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 ext4 49G 20G 29G 41% /etc/hosts
shm tmpfs 64M 8.0K 64M 1% /dev/shm
tmpfs tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
内核版本:5.4.0-1046-azure
overlay overlay 49G 20G 29G 41% /
从文件系统来看,您似乎 运行 在一个容器中。使用 Docker-in-Docker,通常您会在 /var/lib/docker 处安装一个卷,以便从容器的覆盖文件系统中获取 docker 文件系统,因为您无法进行覆盖在叠加层之上。 docs on storage driver backing filesystems 显示每个存储驱动程序支持的底层文件系统。
如果您不能为 docker 实现卷挂载,那么您只能使用 vfs,它可以在任何地方运行但非常占用磁盘空间(为每一层复制整个文件系统),或者 fuse- overlayfs 通常用于无根安装,可能不适用于您的用例。
如果您在 Xen 主机上的 VM 内,则需要为 VM 激活 pygrub 并在 VM 内安装它自己的内核(而不是使用主机的内核)
参见:https://wiki.debian.org/PyGrub
- 虚拟机内部:
mkdir /boot/grub
apt-get install -y linux-image-amd64
cat > /boot/grub/menu.lst << EOF
default 0
timeout 2
title Debian GNU/Linux
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro
initrd /initrd.img
title Debian GNU/Linux (recovery mode)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro single
initrd /initrd.img
EOF
- 注释掉
#kernel = '/boot/vmlinuz-4.19.0-20-amd64'
#extra = 'elevator=noop'
#ramdisk = '/boot/initrd.img-4.19.0-20-amd64'
并添加:
bootloader = 'pygrub'
- 重启虚拟机