查看docker容器内部Redis的TCP连接问题

 更新时间:2026年01月13日 09:14:38   作者:techzhi  
本文介绍了如何使用`nsenter`命令在宿主机上查询Docker容器内部的Redis连接情况,推荐使用第二种方式,即通过`nsenter`进入容器执行`netstat`命令

前言

在一次生产环境中偶然发现Redis的连接数特别大,于是很好奇想知道为什么或者具体哪些服务连接了当前Redis。想必大家都会觉得这个问题还是比较简单的,会想起netstat命令。但是因为当时的redis是docker容器部署的方式在宿主机执行netstat -lptn | grep 6379 怎么也查询不出来。于是开始各种搜索解决方案。实践存在两种方式:(本文推荐第二种方式)

  • 第一种docker exec进容器操作netstat -lptn | grep 6379
  • 第二种使用nsenter -t <pid> -n netstat

提示:以下是是第二种方式的操作过程

一、nsenter是什么?

nsenter命令是一个可以在指定进程的命令空间(比如docker容器)下运行指定程序的命令。

简单理解就是在宿主机上可以直接执行容器内部的shell命令,也可以在容器内部直接操作宿主机外部的shell命令。

这里重点nsenter具体怎么用就不多说了,想了解的可以网查查下很简单。

二、Redis连接情况分析

1、Redis容器进程ID

containerid容器ID

docker inspect -f '{{.State.Pid}}' <containerid> 
  • 查询结果
[hz_dev@node-12 ~]$ docker inspect -f '{{.State.Pid}}' d6fe0565449b
12599

12599为当前redis容器的进程ID

2、查询Redis tcp连接

pid为:12599

nsenter -t <pid> -n netstat -pn
  • 查询结果
nsenter -t 12599 -n netstat -pn

从上图可知容器内部的6379Redis被容器内部51420客户端连接上了。

三、总结

nsenter -t 12599 -n netstat -pn

简单分析下这个命令结构:

  • 红色部分:nsenter -t 12599 -n为nsenter的执行前缀。
  • 黄色部分:netstat -pn为实际需要执行的命令。

如果说你想在宿主机执行容器内部的ifconfig命令:nsenter -t 12599 -n ifconfig

这个就是查看到了容器内部网卡的数据了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 迁移docker部署的gitlab过程(经实战)

    迁移docker部署的gitlab过程(经实战)

    本文详细描述了如何将Docker部署的GitLab数据迁移到另一块硬盘的过程,包括包括停止容器、迁移数据卷、修改挂载路径、修正权限和重启容器等等每一步骤都有详细的说明确保迁移过程的安全性和有效性
    2026-05-05
  • docker常用命令总结(推荐)

    docker常用命令总结(推荐)

    这篇文章主要介绍了docker常用命令总结(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • k8s 与docker空间使用分析与清理方法

    k8s 与docker空间使用分析与清理方法

    使用Docker 运行业务一段时间后,可能会出现宿主节点的磁盘容量占用高,导致宿主机磁盘空间不足等异常,对业务造成影响,本文对 Docker 的空间占用进行汇总分析,需要的朋友可以参考下
    2022-12-12
  • 在Docker环境中如何运行自己的代码

    在Docker环境中如何运行自己的代码

    这篇文章主要介绍了在Docker环境中如何运行自己的代码实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • Docker单个容器运行多个war和jar的方法详解

    Docker单个容器运行多个war和jar的方法详解

    这篇文章主要为大家详细介绍了Docker单个容器运行多个war和jar的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-04-04
  • 迁移docker镜像到新服务器的具体操作流程

    迁移docker镜像到新服务器的具体操作流程

    在日常工作中,我们有时会需要将服务器A上的镜像上传至服务器B上,这篇文章主要介绍了迁移docker镜像到新服务器的具体操作流程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • Docker部署nginx以及配置域名全过程

    Docker部署nginx以及配置域名全过程

    本文详细介绍了如何使用Docker部署Nginx,包括拉取镜像、启动容器、配置挂载、修改配置文件、重新加载配置文件以及配置域名
    2025-11-11
  • 在Docker容器中不需要运行sshd的原因浅析

    在Docker容器中不需要运行sshd的原因浅析

    在一个容器中运行SSH服务器,这真的是一个错误(大写字母W)吗?老实说,没那么严重。当你不去访问Docker主机的时候,这样做甚至是极其方便的,但是这仍然需要在容器中取得一个shell
    2016-11-11
  • docker-compose限制容器cpu和内存方式

    docker-compose限制容器cpu和内存方式

    这篇文章主要介绍了docker-compose限制容器cpu和内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker 免root权限登陆的解决方案

    docker 免root权限登陆的解决方案

    这篇文章主要介绍了docker 免root权限登陆的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论