出现的问题
在离线安装执行安装脚本的过程中出现下面的错误,尝试手动启动 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
简单总结
检查离线包的安装脚本发现因为是完全考虑的离线环境,不会存在说安装其他依赖的情况,而是只会把相应的文件移动到指定位置并赋予权限。
当我们遇到问题的时候不要想当然放弃,一定要学会查看日志,寻找像是 warn error failed 这类信息,这可以很好地帮助你找到并解决问题。
- 版权归属:虚空云馆
- 原始链接:1Panel 离线安装 Docker 启动报错解决方法
- 许可协议:署名—相同方式共享 4.0 国际版 (CC BY-SA 4.0)