如何列出Kubernetes中未运行的Docker容器及非K8s Pod容器
关于Docker监控K8s集群外独立容器的问题解答
完全可以直接用Docker命令列出和监控这些不属于K8s Pod的独立容器,具体说明如下:
Docker daemon统一管理所有容器
当Kubernetes使用Docker作为运行时时,K8s所管理的Pod本质上是由Docker daemon创建和运行的容器组。你在集群外运行的独立容器,同样由同一台机器上的Docker daemon负责管理——不管容器是否归属K8s,Docker都会将其纳入自身的管理范围。具体操作方法
- 列出容器:执行
docker ps(仅显示运行中容器)或docker ps -a(显示所有状态容器),结果会同时包含K8s Pod的容器和你运行的独立容器。 - 区分两类容器:K8s创建的容器带有特定标识,比如命名会包含Pod名称、命名空间后缀;通过
docker inspect <容器ID>查看元数据时,能看到io.kubernetes.*开头的标签字段。独立容器没有这些K8s相关标识,很容易区分。 - 监控独立容器:常规Docker监控命令对独立容器完全适用:
- 查看资源占用:
docker stats - 查看容器日志:
docker logs <容器ID/名称> - 查看容器内进程:
docker top <容器ID/名称>
- 查看资源占用:
- 列出容器:执行
注意事项
不要直接修改或操作K8s管理的容器——K8s会通过自身控制器维护Pod状态,手动修改可能导致集群状态不一致。而独立容器则可以放心用Docker命令进行启停、配置修改等操作。
内容的提问来源于stack exchange,提问作者RuaosP1
相关产品推荐
相关产品推荐

