Ubuntu 16.04 LTS下Docker服务启动失败求助(附错误详情)
搞定Ubuntu 16.04 LTS上Docker启动失败的问题
嘿,从你给出的systemctl status docker.service输出来看,关键的错误细节没显示全,咱们先从获取完整错误日志入手,这是定位问题的核心:
第一步:拿到完整的Docker启动错误日志
执行下面的命令,查看Docker启动的详细日志,里面会有具体的失败原因:
journalctl -u docker.service -e
或者直接查看Docker的本地日志文件(Ubuntu 16.04里一般在/var/log/docker.log):
cat /var/log/docker.log
常见问题及对应解决办法
根据Ubuntu 16.04上Docker启动失败的高频场景,我整理了几个大概率的情况,你可以挨个排查:
1. Docker配置文件语法错误
如果你之前修改过/etc/docker/daemon.json这个配置文件,很可能是语法出问题了——比如少了逗号、引号不配对这种小错误。
- 检查配置文件语法是否合法:
如果命令报错,说明配置文件有问题,修正后重启Docker试试:python -m json.tool /etc/docker/daemon.jsonsystemctl restart docker
2. 端口被其他进程占用
Docker默认会用2375/2376端口,如果这些端口被别的进程占了,启动肯定会失败。
- 检查端口占用情况:
要是发现被占用,要么停止占用端口的进程,要么修改Docker配置文件里的监听端口。netstat -tulnp | grep 2375 netstat -tulnp | grep 2376
3. 存储驱动不兼容
Ubuntu 16.04上Docker默认用aufs存储驱动,如果你的系统内核不支持aufs,就会启动失败。
- 检查内核是否支持aufs:
如果没有任何输出,说明缺少aufs模块,安装对应的内核包就行:grep aufs /proc/filesystems
安装完重启系统,再启动Docker:sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtualsystemctl start docker
4. Docker安装包损坏或不完整
如果是刚装的Docker,可能存在安装包损坏的情况。
- 彻底卸载后重新安装:
安装完成后尝试启动Docker:sudo apt-get purge docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo apt-get install docker-ce docker-ce-cli containerd.iosystemctl start docker
5. AppArmor权限限制
Ubuntu默认启用AppArmor,如果它的规则阻止了Docker的操作,也会导致启动失败。
- 临时关闭AppArmor测试一下:
要是能正常启动,说明是AppArmor的问题,你需要调整对应的权限规则。sudo systemctl stop apparmor sudo systemctl disable apparmor
如果以上方法都没解决
把journalctl -u docker.service -e的完整输出贴出来,我帮你仔细分析具体的错误原因。
内容的提问来源于stack exchange,提问作者Ramesh Ganesh
相关产品推荐
相关产品推荐

