centos 初始化图形驱动程序时发生Docker错误:驱动程序不受支持

yrdbyhpb  于 2022-11-07  发布在  Docker
关注(0)|答案(4)|浏览(175)

我在CentOS 7 VM中执行旧版本的Docker时遇到问题。我安装了Docker Docker version 17.09.1-ce,因为它是我需要的版本,我需要在它上面运行一些软件,而最新版本的Docker version 17.12.1-ce与它不兼容,所以我需要安装旧版本。
然而,我安装了docker中描述的docker,它似乎做得很好,然而,当我去运行hello world图像时,我得到:

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

于是,我就这样做了:

dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

然后我得到这个错误:

WARN[2018-03-04T19:32:51.374105228Z] [!] DON'T BIND ON ANY IP ADDRESS WITHOUT setting --tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING [!] 
INFO[2018-03-04T19:32:51.404324386Z] libcontainerd: new containerd process, pid: 14728 
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
ERRO[2018-03-04T19:32:52.452025257Z] [graphdriver] prior storage driver overlay2 failed: driver not supported 
Error starting daemon: error initializing graphdriver: driver not supported

这是什么?我应该做什么,以便能够执行docker守护进程,但仍然与我安装的docker版本?

bqucvtff

bqucvtff1#

当我键入dockerd时,遇到了同样的问题,错误显示为

INFO[2019-12-03T01:39:44.030124494-05:00] Error while creating filesystem xfs on device docker-253:1-3117512-base: exit status 1  storage-driver=devicemapper
ERRO[2019-12-03T01:39:44.030161517-05:00] [graphdriver] prior storage driver devicemapper failed: exit status 1 
failed to start daemon: error initializing graphdriver: exit status 1

我使用dockerd --storage-opt dm.fs=ext4将存储选项更改为ext4,docker成功启动。
如需更多存储选项,请使用man dockerd

wpcxdonn

wpcxdonn2#

当我尝试将docker-machine与CentOS VM一起使用时,也遇到了类似的问题。结果发现docker-machine将一个名为10-machine.conf的文件复制到:

/etc/systemd/system/docker.service.d/10-machine.conf

在这个文件中,传递了dockerd--storage-driver= overlay 2。当我删除这个选项时,docker将正常启动。
为了进行半永久性修复,我创建了一个新文件:

/etc/systemd/system/docker.service.d/20-machine.conf

在这里我删除了--storage-driver= overlay 2选项。然后Docker-machine将正确地创建环境。
奇怪的是,如果我运行Docker信息,我的Docker引擎确实使用了overlay 2。

rxztt3cl

rxztt3cl3#

问题不在于图形驱动程序,而在于之前的错误:

Error while creating filesystem xfs on device docker-253:1-3117512-base: exit status 1  storage-driver=devicemapper

这可能是VM上的内核问题

您的虚拟机在哪个主机上运行?

如果您使用的是Xen主机,则需要为VM激活pygrub,并在VM中安装其自己的内核(而不是使用主机的内核)
请参阅:https://wiki.debian.org/PyGrub
1.虚拟机内部:

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

1.注解掉


# kernel      = '/boot/vmlinuz-4.19.0-20-amd64'

# extra       = 'elevator=noop'

# ramdisk     = '/boot/initrd.img-4.19.0-20-amd64'

并加上:

bootloader = 'pygrub'

1.重新启动VM

q7solyqu

q7solyqu4#

这可能算不上是一个答案,因为这是一个利基的事情,它可能只有我经历了这一点,但:
对我来说,问题是我在一个LXC容器中创建了一个命名管道(使用mkfifo)。由于某种原因,这阻止了所有其他容器(及其Docker示例)加载存储驱动程序。
删除管道后,Docker示例又恢复正常。

相关问题