我在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版本?
4条答案
按热度按时间bqucvtff1#
当我键入
dockerd
时,遇到了同样的问题,错误显示为我使用
dockerd --storage-opt dm.fs=ext4
将存储选项更改为ext4
,docker成功启动。如需更多存储选项,请使用
man dockerd
。wpcxdonn2#
当我尝试将docker-machine与CentOS VM一起使用时,也遇到了类似的问题。结果发现docker-machine将一个名为10-machine.conf的文件复制到:
在这个文件中,传递了dockerd--storage-driver= overlay 2。当我删除这个选项时,docker将正常启动。
为了进行半永久性修复,我创建了一个新文件:
在这里我删除了--storage-driver= overlay 2选项。然后Docker-machine将正确地创建环境。
奇怪的是,如果我运行Docker信息,我的Docker引擎确实使用了overlay 2。
rxztt3cl3#
问题不在于图形驱动程序,而在于之前的错误:
这可能是VM上的内核问题。
您的虚拟机在哪个主机上运行?
如果您使用的是Xen主机,则需要为VM激活pygrub,并在VM中安装其自己的内核(而不是使用主机的内核)
请参阅:https://wiki.debian.org/PyGrub
1.虚拟机内部:
1.注解掉
并加上:
1.重新启动VM
q7solyqu4#
这可能算不上是一个答案,因为这是一个利基的事情,它可能只有我经历了这一点,但:
对我来说,问题是我在一个LXC容器中创建了一个命名管道(使用
mkfifo
)。由于某种原因,这阻止了所有其他容器(及其Docker示例)加载存储驱动程序。删除管道后,Docker示例又恢复正常。