在日常开发和运维中,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 --format
config.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 会更高效,而且一眼能记住常用命令。