Docker之xfs文件系统下安装报错解决方案
一、需求说明
centos系统下安装docker最新版的时候,安装成功,启动的时候报错。 报错信息
Nov 22 15:53:20 k8s-4504 dockerd: time="2024-11-22T15:53:20.808510752+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby”。
经过一系列排查发现,原来是centos早起版本安装系统的时候如果选择的xfs文件系统格式,默认是ftype=0,如果安装新版docker要求ftype=1。为了解决docker启动问题,我们需要一块ext4或者xfs的ftype=1的磁盘,此博文以此为例进行介绍如何解决docker启动遇到d_type参数错误问题。博文实验环境如下:
操作系统:centos 7.4
docker版本:24.0.2
二、解决方案
1、查看磁盘xfs信息
为了确定原因,我们首先检查xfs磁盘的ftype值,docker默认根位置是在/var/lib/docker,我们检查的根分区,可以看到ftype当前是0,不满足要求。
2、确认系统是否支持overlay
我们需要先确定系统是否添加overlay模块到内核,如下命令如果没有任何输出说明不支持,我们需要执行步骤3。
lsmod |grep over
overlay 91659 17
3、添加系统内核支持overlay
如果步骤2没有执行后没有任何输出则需要使用modprobe添加overlay模块到内核中,然后重启系统。
4、添加一块新磁盘
略
5、格式化磁盘
将磁盘分区格式化,格式化的时候指定ftype=1。
mkfs.xfs -n ftype=1 /dev/mapper/xxxx
6、创建挂载目录
创建一个挂载目录。
mkdir -p /docker
7、挂载/docker目录
将新磁盘挂载到新目录。
mount /dev/mapper/xxxx /docker
8、查看磁盘xfs参数信息
挂载后查看/docker分区的xfs参数信息,确定ftpye参数值为1。
xfs_info /docker
9、修改docker的daemon.json配置文件
docker默认根目录是/var/lib/docker,如果是根分区参数不满足要求基本上不可能进行参数修改。所以我们需要重新制定docker的根目录,创建/etc/docker/daemon.json文件并写入如下内容。
{
...
"data-root": "/docker/var/lib/docker",
"storage-driver": "overlay2",
...
}
10、重新启动docker
systemctl daemon-reload && systemctl restart docker
评论区