docker启动容器提示read init-p: connection reset by peer: unknown问题

简介: docker启动容器提示read init-p: connection reset by peer: unknown问题


问题背景:某客户反馈ECS服务器上服务访问不到,导致业务异常,业务是通过单机Docker 部署的,但是目前发现docker 容器没有启动,start拉不起来,异常截图如下



问题排查:


1 从错误里面看是docker-shim去调用runc出现了异常,看起来是runc没有初始化成功,这个地方我想大家会有疑问,runc这个东西是干什么的,他在docker里面起到什么作用?


runc作为容器的运行时,现在作为独立的项目来进行发展,runc提供一套简单的容器运行环境,包括进程的命名空间、cgroups和文件系统权限等管理的功能,runc是基于oci标准的产物,可以让大家都通过统一的接口来进行运行时的操作。其本质的管理工作也是最主要的几个重要的函数clone,unshare和setns等重要的操作函数。



2 第二步就是验证下猜想runc没有拉起来,先把docker debug日志开启下,方法是:修改/etc/docker/daemon.json中增加"debug": true, 然后systemctl reload docker,完毕后执行 docker run -it --rm ubuntu echo OK 发现问题复现,并且看日志以及ps -aux |grep runc 看是为空的,证明runc没拉起来


3 继续过滤message日志,看下debug里面的输出,过滤runc的动作,并且搭配dmesg 打印内核级别的日志看,发现是run panic了




从提示的dumpd core里面看是libsystem.so这个库引发的, 其实我这个时候有点懵逼的,完全陷入知识盲区了,对于完全模式的组件没办法用原始最笨的方法 strace -e trace 去做追踪对比,其实这里之前得到一个非常有效的信息,就是用户机器被入侵了,虽然心理大概率敢肯定lib库被改了,让用户初始化,不过作为技术人员来说不拿出点证据总觉得缺点是什么!



问题总结:


经过多次strace 追踪对比,发现libsystem 库应用的不对,怎么去找ld.so.perload了!这个地方其实有点经验的意思了,之前处理过多次挖矿的问题,这个目录一般都是挖矿入侵创建的,找到异常库后,先注释,然后为了保险,先把ld.so.cache备份改名,ldconfig重新生成


动态库注释后,重启docker 相关容器已经拉起来了,重新捞日志发现panic现象消失,不过被入侵的机器里面很多库还是被改了,推荐考虑做好数据备份,重新初始化环境,然后做下安全加固

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
969 6
|
10月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
887 6
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1439 108
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
876 57
|
10月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
863 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
719 59
|
12月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
695 16