如何按端口维度查询服务器上运行的Container容器列表
按端口筛选运行中Docker容器的命令方案
方法1:使用Docker原生过滤参数(推荐)
Docker ps 命令内置的publish过滤器可以直接匹配宿主机映射端口,不需要额外管道处理,查询更准确。
查询占用8080或443端口的运行中容器命令:
docker ps --filter "publish=8080" --filter "publish=443"
说明:
- 多个
--filter参数是逻辑或的关系,满足任意一个端口条件的容器都会被返回 - 如果需要包含已停止的容器,把
docker ps替换为docker ps -a - 如果需要匹配指定协议的端口,可在端口后加协议后缀,例如匹配UDP协议的8080端口使用
--filter "publish=8080/udp"
方法2:结合grep做自定义匹配
如果需要更灵活的端口规则匹配(比如端口段、特定IP绑定的端口),可以结合grep正则实现:
docker ps | grep -E '([0-9]+\.){3}[0-9]+:8080|([0-9]+\.){3}[0-9]+:443|:::8080|:::443'
这个命令会匹配所有IPv4、IPv6地址上绑定了8080或443端口的容器条目。
常用附加参数
- 仅返回容器ID:在命令末尾添加
-q参数,方便后续批量操作容器,示例:docker ps --filter "publish=8080" --filter "publish=443" -q - 查看完整端口映射信息:如果默认输出的端口列表被截断,可以添加
--no-trunc参数展示完整内容
内容的提问来源于stack exchange,提问作者Mori Kuldip
相关产品推荐
相关产品推荐

