
在日常开发和运维中,docker ps 是使用频率最高的命令之一。但默认输出内容往往过长,包含了 CONTAINER ID、IMAGE、COMMAND、PORTS 等一堆信息,很多时候我们只需要容器的 ID、名称或状态。
本文将带你学会几种方式,让 docker ps 的输出更简洁、更符合个人习惯。
--format 参数Docker 提供了 --format 参数,可以自定义输出字段。例如,只显示容器 ID 和名称:
docker ps --format "table {{.ID}}\t{{.Names}}"输出效果:
CONTAINER ID NAMES
f3b2c8e1a123 my-app
9c7d6e2b9f45 redis{{.ID}} → 容器 ID{{.Image}} → 镜像名{{.Status}} → 状态{{.Ports}} → 映射端口{{.Names}} → 容器名👉 例如,只看容器名:
docker ps --format "{{.Names}}"每次都写 --format 太长,不方便记忆。最常用的做法是设置 alias。
在 ~/.bashrc 或 ~/.zshrc 中加入:
alias dps='docker ps --format"table {{.ID}}\t{{.Names}}\t{{.Status}}"'保存后执行:
source ~/.bashrc # 或 source ~/.zshrc以后只需输入:
dps即可得到精简后的容器列表。
你还可以定义多个别名:
alias dpsid='docker ps --format"{{.ID}}"'
alias dpsname='docker ps --format"{{.Names}}"'
alias dpsport='docker ps --format"table {{.ID}}\t{{.Names}}\t{{.Ports}}"'这样记忆成本几乎为零。
如果不想设置别名,可以直接修改 Docker 的默认配置,让 docker ps 输出更简洁。
编辑 ~/.docker/config.json,添加:
{
"psFormat": "table {{.ID}}\t{{.Names}}\t{{.Status}}"
}保存后,再执行 docker ps,就会默认以该格式展示,无需额外参数。
另一种方案是写个小脚本,例如 ~/bin/dps.sh:
#!/bin/bash
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"赋予可执行权限:
chmod +x ~/bin/dps.sh然后直接运行:
dps.sh这种方式适合团队共享,大家统一用一个脚本即可。
docker ps --formatconfig.json 或共享脚本通过以上几种方法,你可以大幅度简化 docker ps 的输出,让日常开发和运维更加高效。
✨ 建议:如果你每天都会用 Docker,可以整理一份 常用 Docker 简化命令清单,例如:
alias dps='docker ps --format"table {{.ID}}\t{{.Names}}\t{{.Status}}"'
alias dlog='docker logs -f'
alias dexec='docker exec -it'这样一来,Docker 的日常操作会变得轻松很多。
命令别名 | 等价命令 | 说明 |
|---|---|---|
dps | docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" | 查看容器 ID、名称、状态 |
dpsid | docker ps --format "{{.ID}}" | 只看容器 ID |
dpsname | docker ps --format "{{.Names}}" | 只看容器名称 |
dpsport | docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" | 查看容器端口映射 |
dlog | docker logs -f | 实时查看日志 |
dloge | docker logs --tail 100 -f | 查看最近 100 行日志并持续跟随 |
dexec | docker exec -it | 进入容器交互终端 |
dstop | docker stop $(docker ps -q) | 停止所有运行中的容器 |
drm | docker rm $(docker ps -aq) | 删除所有容器(需先停止) |
drmi | docker rmi $(docker images -q) | 删除所有镜像 |
dip | docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' | 获取容器 IP 地址(需加容器名 /ID) |
📌 使用方式:
将这些 alias 添加到 ~/.bashrc 或 ~/.zshrc 中,例如:
alias dps='docker ps --format"table {{.ID}}\t{{.Names}}\t{{.Status}}"'
alias dlog='docker logs -f'
alias dexec='docker exec -it'然后执行:
source ~/.bashrc即可生效。
这样,你以后操作 Docker 会更高效,而且一眼能记住常用命令。