You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查看启动Docker容器的用户及对应运行容器列表?

查看Docker容器的启动用户及运行中容器列表

要同时获取运行中容器列表和对应的启动用户信息,你可以通过以下几种高效的方法实现:

方法1:使用docker inspect批量获取(推荐)

docker inspect可以获取容器的完整元数据,其中.Config.User字段存储了容器启动时指定的用户。结合docker psxargs,可以批量输出容器基本信息和启动用户:

docker ps -q | xargs -I {} docker inspect -f '{{.Id}} {{.Name}} {{.Config.User}}' {}

如果想要更贴近docker ps的表格格式,可以用shell循环来格式化输出:

# 打印表头
echo "CONTAINER ID   NAME               USER"
# 遍历每个运行中容器
docker ps --format "{{.ID}} {{.Names}}" | while read container_id container_name; do
  # 获取启动用户
  start_user=$(docker inspect -f '{{.Config.User}}' "$container_id")
  # 格式化输出(空值代表使用root用户启动)
  printf "%-12s %-18s %s\n" "$container_id" "$container_name" "${start_user:-root}"
done

方法2:通过docker exec查看容器内运行用户

如果容器内包含whoami命令,也可以直接执行容器内命令查看当前运行用户(和启动用户一致):

docker ps -q | xargs -I {} sh -c "echo '{} $(docker exec {} whoami)'"

⚠️ 注意:这种方法依赖容器内的whoami工具,部分轻量镜像(如alpine)可能需要先安装busybox或相关工具,不如docker inspect通用可靠。

补充说明

  • 如果创建容器时没有通过--user参数指定用户,.Config.User字段会是空字符串,代表使用root用户启动容器。
  • Docker 1.13+版本的docker container lsdocker ps功能完全一致,上述命令对两者都适用。

内容的提问来源于stack exchange,提问作者Franck Dernoncourt

火山引擎 最新活动