普通网友 2025-06-24 15:45 采纳率: 98.1%
浏览 0
已采纳

**如何查看运行中的Docker容器名称?**

**问题描述:** 在使用 Docker 进行容器化应用部署时,经常需要查看当前正在运行的容器信息。其中,获取运行中的 Docker 容器名称是一个常见需求,尤其在调试、日志查看或执行进入容器内部等操作时至关重要。那么,如何通过命令行快速查看所有正在运行的 Docker 容器的名称?是否有简洁有效的方式区分运行中与已停止的容器?此外,是否可以通过容器 ID 反向查找到对应的容器名称?掌握这些技能将有助于提升日常运维和开发效率。
  • 写回答

1条回答 默认 最新

  • ScandalRafflesia 2025-06-24 15:45
    关注

    一、问题背景与重要性

    在使用 Docker 进行容器化应用部署时,经常需要查看当前正在运行的容器信息。其中,获取运行中的 Docker 容器名称是一个常见需求,尤其在调试、日志查看或执行进入容器内部等操作时至关重要。

    • 如何通过命令行快速查看所有正在运行的 Docker 容器的名称?
    • 是否有简洁有效的方式区分运行中与已停止的容器?
    • 是否可以通过容器 ID 反向查找到对应的容器名称?

    掌握这些技能将有助于提升日常运维和开发效率。

    二、基本命令:查看运行中的容器名称

    最基础且常用的方法是使用 docker ps 命令来列出当前正在运行的容器:

    docker ps

    该命令默认会显示以下字段:

    CONTAINER IDIMAGESTATUSPORTSNAMES
    abc123456789nginx:latestUp 2 hours0.0.0.0:80->80/tcpweb-server
    def987654321redis:alpineUp 1 hour6379/tcpcache-db

    要仅显示容器名称,可以结合 --format 参数:

    docker ps --format "{{.Names}}"

    三、区分运行中与已停止的容器

    除了运行中的容器,我们也可以查看所有容器(包括已停止):

    docker ps -a

    为了更清晰地区分状态,我们可以格式化输出包含状态字段:

    docker ps -a --format "table {{.Names}}\t{{.Status}}"

    示例输出:

    NAMESTATUS
    web-serverUp 2 hours
    cache-dbUp 1 hour
    old-jobExited (0) 3 days ago

    四、通过容器 ID 查找对应名称

    有时候你可能只知道容器 ID,想要查找其对应的名称。可以使用如下命令:

    docker inspect --format='{{.Name}}' <container_id>

    注意:输出结果前缀通常为斜杠(如 "/web-server"),你可以用 shell 命令进一步处理去掉斜杠:

    docker inspect --format='{{.Name}}' abc123456789 | sed 's/\///'

    五、高级技巧与脚本整合

    如果你希望将多个功能整合成一个脚本,例如列出所有容器并标注状态颜色,可以编写如下 Bash 脚本:

    #!/bin/bash
    docker ps -a --format "table {{.Names}}\t{{.Status}}" | awk '
    NR==1 { print $0; next }
    $2 ~ /^Up/ { print "\033[32m"$0"\033[0m" }
    $2 ~ /^Exited/ { print "\033[31m"$0"\033[0m" }
    '

    该脚本会在终端中以绿色显示运行中的容器,红色显示已停止的容器。

    六、流程图总结:Docker 容器状态查询逻辑

    graph TD A[开始] --> B{是否运行中?} B -->|是| C[docker ps] B -->|否| D[docker ps -a] D --> E[过滤状态] C --> F[提取名称] E --> G[提取名称和状态] F --> H[结束] G --> H
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 6月24日