1Panel 离线安装 Docker 启动报错解决方法

出现的问题

在离线安装执行安装脚本的过程中出现下面的错误,尝试手动启动 Docker 也会出现一样的情况。

Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

在面板中尝试安装应用会出现下面的情况。

默认容器网络创建失败!Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

默认容器网络创建失败

排查流程

首先根据报错提示信息,使用下面命令检查日志,然后可以使用上下左右键进行翻找

sudo journalctl -eu docker.service

这里注意到 Docker 无法启动 daemon,它是 Docker 的核心组件,负责管理容器的运行、创建、停止,以及与容器相关的所有后台任务。

查看详细日志信息

继续往右边看详细信息,发现了下面的报错,那么已经很明显了,我们这里是系统没有安装 iptables

出现 Job for docker.service failed because the control process exited with error code. 并不一定就是该问题,请自己查找日志信息判断情况

failed to register "bridge" driver: failed to create NAT chain DOCKER: iptables not found

我们用下面的命令检查下是不是真的没有,没有的话我们安装就行了

sudo iptables --version

解决问题

我这里以 Debian/Ubuntu 为主,其他系统出现类似情况请根据实际系统执行相关命令

根据你的实际情况选择安装方式,离线状态就挂载镜像后安装,在线状态就直接使用下面的命令安装

sudo apt install iptables

检查是否安装完成,安装完成将会出现版本号

sudo iptables --version

接下来启动 Docker 即可

sudo systemctl start docker

检查 Docker 状态

sudo systemctl status docker

检查 Docker 运行状态

简单总结

检查离线包的安装脚本发现因为是完全考虑的离线环境,不会存在说安装其他依赖的情况,而是只会把相应的文件移动到指定位置并赋予权限。

当我们遇到问题的时候不要想当然放弃,一定要学会查看日志,寻找像是 warn error failed 这类信息,这可以很好地帮助你找到并解决问题。


评论