Manjaro(内核4.19)中docker.service启动失败问题求助
解决Manjaro 4.19内核下Docker启动失败的问题
我来帮你排查这个Docker启动失败的问题——在Manjaro 4.19内核上遇到这种情况,通常是内核模块缺失、网络配置不正确或者存储驱动不兼容导致的,咱们一步步来解决:
1. 检查并加载Docker必需的内核模块
Docker依赖overlay(存储驱动用)和br_netfilter(网络桥接用)两个内核模块,先确认它们是否已加载:
lsmod | grep -E 'overlay|br_netfilter'
如果没有任何输出,手动加载这两个模块:
sudo modprobe overlay sudo modprobe br_netfilter
为了让模块在开机时自动加载,创建一个模块配置文件:
echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/docker.conf
2. 配置Docker所需的网络sysctl参数
Docker需要开启IP转发和桥接网络的iptables规则支持,先检查当前配置:
sysctl net.ipv4.ip_forward net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables
如果输出的值不是1,手动设置并保存到开机配置:
sudo sysctl -w net.ipv4.ip_forward=1 sudo sysctl -w net.bridge.bridge-nf-call-iptables=1 sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=1 # 保存到sysctl配置文件 echo -e "net.ipv4.ip_forward=1\nnet.bridge.bridge-nf-call-iptables=1\nnet.bridge.bridge-nf-call-ip6tables=1" | sudo tee /etc/sysctl.d/docker.conf # 生效配置 sudo sysctl --system
3. 检查并调整Docker存储驱动
4.19内核可能对默认的overlay2存储驱动支持有问题,先确认内核是否开启了overlay文件系统:
grep CONFIG_OVERLAY_FS /boot/config-$(uname -r)
如果输出是CONFIG_OVERLAY_FS=y或CONFIG_OVERLAY_FS=m,说明支持;如果没有这个配置,或者启动还是失败,可以临时切换到vfs存储驱动(注意:vfs性能较差,仅用于排查,后续建议升级内核解决):
创建Docker守护进程配置文件(如果不存在):
sudo mkdir -p /etc/docker echo '{ "storage-driver": "vfs" }' | sudo tee /etc/docker/daemon.json
4. 重置Docker的启动失败状态
因为之前多次启动失败触发了systemd的启动限制,先重置失败状态:
sudo systemctl reset-failed docker.service sudo systemctl reset-failed docker.socket
5. 重新启动Docker并验证
现在尝试重新启动Docker服务:
sudo systemctl start docker.service
如果还是失败,直接运行dockerd查看详细启动日志,这能帮你定位更具体的错误:
sudo dockerd
比如可能是配置文件语法错误、依赖缺失等,根据日志再针对性解决。
内容的提问来源于stack exchange,提问作者Tâmer Cuba
相关产品推荐
相关产品推荐

