1、什么是 check-docker-connection

<font style="color:rgb(30, 107, 184);">check-docker-connection</font> 主要用于监控 <font style="color:rgb(30, 107, 184);">Docker</font> 容器的网络连接情况。它可以显示指定容器的网络连接状态,包括 <font style="color:rgb(30, 107, 184);">TCP</font><font style="color:rgb(30, 107, 184);">UDP</font> 连接的数量。
用户可以通过容器 <font style="color:rgb(30, 107, 184);">ID</font> 或名称来指定要监控的容器,或者指定显示连接数最多的前 N 个容器。输出结果以表格形式展示,方便用户查看。

check-docker-connection 主要功能包括:

列出指定容器的网络连接状态,包括:

  • 已建立连接(ESTABLISHED)
  • TIME_WAIT 状态的连接
  • FIN_WAIT2 状态的连接
  • CLOSE_WAIT 状态的连接
  • 监听状态(LISTEN)
  • SYN_SENT 状态的连接
  • SYN_RECV 状态的连接
  • UDP 连接数

2、check-docker-connection 具体使用方法

环境要求

  • 需要安装 <font style="color:rgb(30, 107, 184);">Docker</font>
  • 宿主机上必须安装有 <font style="color:rgb(30, 107, 184);">netstat</font><font style="color:rgb(30, 107, 184);">nsenter</font> 命令,以便访问容器的网络命名空间。如果没有,请自行安装,各大发行版上通常都是 <font style="color:rgb(30, 107, 184);">net-tools</font><font style="color:rgb(30, 107, 184);">util-linux</font> 包。

命令行参数

  • <font style="color:rgb(30, 107, 184);">-c</font>:指定一个或多个容器的 ID 或名称,多个容器用逗号分隔。
  • <font style="color:rgb(30, 107, 184);">-n</font>:显示连接数最多的前 N 个容器。

注意:<font style="color:rgb(30, 107, 184);">-c</font><font style="color:rgb(30, 107, 184);">-n</font> 参数不能同时使用。

运行 check-docker-connection

  1. $ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --pid=host --net=host --privileged 80imike/check-docker-connection

注意事项:

  1. <font style="color:rgb(30, 107, 184);">check-docker-connection</font> 需要访问 <font style="color:rgb(30, 107, 184);">Docker socket</font>,所以挂载了 <font style="color:rgb(30, 107, 184);">/var/run/docker.sock</font>
  2. 使用 <font style="color:rgb(30, 107, 184);">--pid=host</font><font style="color:rgb(30, 107, 184);">--net=host</font> 来允许容器访问主机的进程和网络命名空间。
  3. <font style="color:rgb(30, 107, 184);">--privileged</font> 标志允许容器使用 <font style="color:rgb(30, 107, 184);">nsenter</font> 命令。

3、check-docker-connection 使用实例

示例 1:监控单个容器

要监控名为 <font style="color:rgb(30, 107, 184);">traefik</font> 的容器,可以使用以下命令:

  1. $ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --pid=host --net=host --privileged 80imike/check-docker-connection -c traefik

这将输出该容器的所有网络连接状态。

一款超实用的 Docker 容器网络实时监控工具 - 图1

示例 2:监控多个容器

要监控多个容器,例如 <font style="color:rgb(30, 107, 184);">traefik</font><font style="color:rgb(30, 107, 184);">splayer</font>,可以使用以下命令:

  1. $ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --pid=host --net=host --privileged 80imike/check-docker-connection -c traefik,splayer

这将显示这两个容器的网络连接状态。

一款超实用的 Docker 容器网络实时监控工具 - 图2

示例 3:显示连接数最多的前 3 个容器

要显示连接数最多的前 3 个容器,可以使用以下命令:

  1. $ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --pid=host --net=host --privileged 80imike/check-docker-connection -n 3

这将输出连接数最多的三个容器的网络连接状态。

通过以上示例,用户可以轻松地监控 Docker 容器的网络连接状态,帮助进行网络性能分析和故障排查。