docker服务起不来原因及解决

这篇具有很好参考价值的文章主要介绍了docker服务起不来原因及解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


报错 关键词:
Failed to start Docker Application Container Engine.

Failed to find iptables: exec: \"iptables\": executable file not found in $PATH

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found

问题

docker指令无法使用,docker服务未正确运行。

执行docker images,报错

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

无法连接docker daemon守护程序,无法连接服务socket,docker服务启动失败。

原因排查

查看docker服务的状态

执行 systemctl status docker 查看docker服务的状态
报错

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2024-03-11 20:34:54 CST; 6 days ago
     Docs: https://docs.docker.com
 Main PID: 3548 (code=exited, status=1/FAILURE)

Mar 11 20:34:54 test systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Mar 11 20:34:54 test systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Mar 11 20:34:54 test systemd[1]: Stopped Docker Application Container Engine.
Mar 11 20:34:54 test systemd[1]: docker.service: Start request repeated too quickly.
Mar 11 20:34:54 test systemd[1]: docker.service: Failed with result 'exit-code'.
Mar 11 20:34:54 test systemd[1]: Failed to start Docker Application Container Engine.

显示启动 Docker Application Container Engine失败。

尝试重启docker service

执行:systemctl restart docker.service, 尝试重启docker service

root@test:/lib/systemd/system# systemctl restart docker.service
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

无法启动。

查看 log分析原因

执行:journalctl -xe

Mar 18 13:28:40 test dockerd[24951]: time="2024-03-18T13:28:40.215890146+08:00" level=warning msg="Failed to find iptables: exec: \"iptables\": executable file not found in $PATH"
Mar 18 13:28:40 test dockerd[24951]: time="2024-03-18T13:28:40.218084167+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
Mar 18 13:28:40 test dockerd[24951]: failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found
Mar 18 13:28:40 test systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Mar 18 13:28:40 test systemd[1]: docker.service: Failed with result 'exit-code'.
-- Subject: Unit docker.service has failed
-- Unit docker.service has failed.

可以看出来是iptables找不到,这个服务没开起来,导致docker服务起不来。
执行systemctl status iptables

root@test:/lib/systemd/system# systemctl status iptables
Unit iptables.service could not be found.

无法找到 iptables.service;有可能是该服务没起来,没安装,或者 iptables 实际上未作为服务运行,而是系统调用。

解决方案参考

参考chatgpt3.5答案:

如果系统中找不到 iptables 服务单元(Unit),这可能意味着 iptables 实际上未作为服务运行。在某些系统上,iptables 配置可能直接由系统调用而不是通过单独的服务。 在这种情况下,您可以尝试按照以下步骤解决Docker无法启动的问题:

  1. 检查 iptables 是否安装:首先,请确保 iptables 工具已安装在系统中。您可以使用以下命令检查 iptables 的安装状态:

which iptables

如果该命令返回路径,则表示 iptables 已安装。如果没有返回任何内容,您可能需要安装 iptables

  1. 手动加载 iptable_nat 模块:有时,即使 iptables 安装了,其相关内核模块也可能未加载。您可以尝试手动加载iptable_nat内核模块:

modprobe iptable_nat

  1. 启用 IP 转发:确保在 sysctl 配置中启用了 IP 转发。您可以编辑 /etc/sysctl.conf 文件并确保以下行未被注释(去掉前面的 # 符号),(在后面追加下面的代码)

net.ipv4.ip_forward = 1

保存文件后,运行以下命令以使更改生效:

sudo sysctl -p

  1. 重新启动 Docker 服务:一旦您已确保 iptables 正常工作并将所需的内核模块加载到系统中,尝试重新启动 Docker 服务

sudo systemctl restart docker

解决过程

尝试按照上述方案进行修改:
执行:
apt-get update && apt install iptables
显示已经安装
再次执行 systemctl status iptables
显示

root@test:/lib/systemd/system# systemctl status iptables
Unit iptables.service could not be found.

说明iptables 配置可能直接由系统调用,而不是服务
执行

root@test:/lib/systemd/system# which iptables
/sbin/iptables
root@test:/lib/systemd/system# modprobe iptable_nat
root@test:/lib/systemd/system# vi /etc/sysctl.conf
root@test:/lib/systemd/system# sysctl -p
fs.file-max = 2097152
net.ipv4.ip_forward = 1
root@test:/lib/systemd/system# systemctl status iptables
Unit iptables.service could not be found.
root@test:/lib/systemd/system# systemctl restart docker.service
root@test:/lib/systemd/system# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2024-03-18 13:33:44 CST; 7s ago
     Docs: https://docs.docker.com
 Main PID: 28879 (dockerd)
    Tasks: 20
   CGroup: /system.slice/docker.service
           └─28879 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

运行成功文章来源地址https://www.toymoban.com/news/detail-841393.html

到了这里,关于docker服务起不来原因及解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算节点systemctl status openstack-nova-compute.service起不来的解决方案

    报错 [root@compute ~]# systemctl start libvirtd.service openstack-nova-compute.service Job for openstack-nova-compute.service failed because the control process exited with error code. See \\\"systemctl status openstack-nova-compute.service\\\" and \\\"journalctl -xe\\\" for details. ● openstack-nova-compute.service - OpenStack Nova Compute Server    Loaded: loade

    2024年02月03日
    浏览(29)
  • IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理?

    戴尔R420 服务器 1U 2台直连存储 4U CentOS 7 IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理? 服务器上电开机就出现进入紧急模式 Welcome to emergency mode! After logging in, type “journalctl -xb” to view GHXWsystem logs, “systemctl reboot”

    2024年01月19日
    浏览(37)
  • Hadoop--万恶NameNode各种起不来!!!

    每次用到Hadoop集群时NameNode总有各种各样奇奇怪怪的问题启动不了或者hdfs用9870端口访问不了!!! 以前写过一篇Hadoop集群缺少node结点 ,一下↓ 是对NameNode结点一些常见问题 目录 NameNode启动不了 HDFS可视化网页打不开 Last but not least   111 配置文件错误  不管你的NameNode在哪个

    2024年02月05日
    浏览(29)
  • Jenkins 执行远程shell脚本部署jar文件问题起不来

    如图:最开始的时候没有加: source /etc/profile 这一行, run.sh里面的java -jar xxxx.jar 一直执行不来。 一开始以为是Jenkins执行退出后会kill一切它启动的进程,所以加了在run.sh里面加了export BUILD_ID=dontKillMe,还是不行。后来考虑是环境变量问题,加上source /etc/profile就好了,同时最

    2024年02月07日
    浏览(38)
  • kubeadmin kube-apiserver Exited 始终起不来查因记录

    kubeadmin kube-apiserver Exited 始终起不来查因记录 查日志 由于 kube-apiserver 起不来 kubectl describe kubectl logs 之类查问题的命令都用不了 用的containerd.service 容器时 crictl logs 命令可用 貌似连接2379 etcd服务端口异常 从日志看,像是etcd内部异常 参考 http://www.caotama.com/1864029.html 受启发,

    2024年02月06日
    浏览(38)
  • docker中mysql容器自动停止原因及解决方法

     第一步:查询已被停止的mysql docker ps -a  第二步:查询日志 dmesg | grep mysql 得出原因:mysql使用的内存过多,导致系统杀死了对应的进程(本服务器内存为1G) 第三步:重启mysql 依据 docker ps -a 能查出容器id 启动命令: docker start 容器id 第四步:mysql启动后设置限制内存 在宿主

    2023年04月08日
    浏览(29)
  • 若依框架放在服务器后台验证码出不来原因分析

    经发现是.env.production 文件里的VUE_APP_BASE_API没有修改成服务器上的域名地址,还是\\\'/prod-api\\\',所以加载不出来 vue.config.js里的某项配置后端端口不对,要修改成对应的后端端口即可。 如果验证码接口报500,当报如下错误的时候看日志文件: 详细日志显示的原因是: 解决方式是

    2024年02月11日
    浏览(28)
  • docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)

    原因分析:     是否能访问当运行docker容器虚拟机(主机)地址     虚拟机对应的端口号是否开启或者防墙是否关闭     端口映射是否正确(这个是我遇到的)     tomcat下载的是最新版,docker运行后里面是没有东西的,会报404 一般都是这几个原因导致的明明docker容器运行

    2024年02月10日
    浏览(32)
  • Linux6.16 Docker consul的容器服务更新与发现

    第四章 LINUX Docker consul的容器服务更新与发现 一、consul 概述 1.什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包