1、命令总览

命令 作用
docker ps 查看运行中的容器(-a查看所有容器)
docker logs [CONTAINER] 查看容器日志(-f实时追踪日志)
docker inspect [CONTAINER] 查看容器详细信息(JSON格式)
docker stats [CONTAINER] 实时监控容器资源占用(CPU/内存/网络)
docker top [CONTAINER] 查看容器内运行的进程
docker diff [CONTAINER] 查看容器文件系统的变化(A添加/D删除/C修改)

ps 列清单,logs 看日志,inspect 查元数据,stats 看资源,top 看进程,diff 看文件差 

2、docker ps

查看正在运行容器的命令,相当于 Linux 的 ps(进程查看器),但针对的是容器。

# 只看正在运行的容器
docker ps

# 查看所有(含已退出)
docker ps -a

# 只显示 ID(配合其他命令批量处理)
docker ps -aq

# 过滤:状态为 exited 且名字包含 api
docker ps -a --filter "status=exited" --filter "name=api"

# 自定义列:ID、镜像、状态、端口
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"

3、docker logs

查看容器的日志输出。默认情况下,它会显示容器启动以来写入到标准输出(stdout)和标准错误(stderr)的所有内容。

# 实时跟踪 nginx 最后 100 行
docker logs -f --tail 100 nginx

# 只看某个时间段(2024-05-01 08:00 以后)
docker logs --since 2024-05-01T08:00:00 nginx

# 把日志导出到文件
docker logs nginx >& nginx.log

# 同时查看 stdout + stderr 并加时间戳
docker logs -t nginx

4、docker inspect

用于查看 Docker 对象(如容器、镜像、网络、卷、插件等)详细信息。

# 以 JSON 形式完整输出
docker inspect nginx

# 只看网络设置
docker inspect --format='{{json .NetworkSettings}}' nginx | jq

# 取单个字段:IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx

# 查看挂载卷映射
docker inspect -f '{{json .Mounts}}' nginx | jq

# 导出到文件备份
docker inspect nginx > nginx-inspect.json

5、docker stats

实时查看 运行中容器 资源使用情况的命令,包括 CPU、内存、网络、磁盘 I/O 等。

# 默认每秒刷新一次,显示 CPU/内存/网络/块 IO
docker stats

# 只看指定容器
docker stats nginx mysql

# 无交互输出一次即退出(脚本里用)
docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" nginx

# 按内存排序(需配合 watch)
watch -n1 'docker stats --no-stream --format "table {{.Container}}\t{{.MemPerc}}" | sort -k2 -hr'

6、docker top

显示容器内正在运行的进程列表。

# 列出 nginx 容器里的所有进程
docker top nginx

# 带 UID、PID、PPID、CMD 完整格式
docker top nginx -o pid,ppid,user,cmd

# 查看 mysql 容器里 mysqld 的线程
docker top mysql | grep mysqld

# 配合 ps 格式自定义(需要容器内有 ps)
docker top nginx aux

7、docker diff

# 显示自镜像启动以来,容器里新增/修改/删除的文件
docker diff nginx

# 输出解释:
# A /tmp/newfile        新增
# C /etc/nginx/nginx.conf 修改
# D /var/log/old.log    删除

# 与运行前镜像对比,判断配置漂移
docker diff web | grep -E 'C /etc|A /app'

# 导出差异列表做审计
docker diff nginx > nginx-diff.txt

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐