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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 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现象消失,不过被入侵的机器里面很多库还是被改了,推荐考虑做好数据备份,重新初始化环境,然后做下安全加固

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
9天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
38 2
|
7天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
8天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
9天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
9天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
9天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
2月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
|
1月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
|
2月前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
97 14
|
1月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
158 0