docker 日常命令
docker 日常命令
#查看docker容器的log路径
docker inspect -f'{{.LogPath}}' 容器ID
# 正确写法(一层,清理缓存)
RUN apt update && apt install -y nginx \
&& rm -rf /var/lib/apt/lists/*
docker compose up -d --build
一、基础实时查看容器资源(默认不排序)
docker stats
# 等价简写
docker container stats
默认每秒刷新,展示所有运行容器:ID、CPU%、内存、网络、磁盘 IO、PIDs,但不自动排序。
二、一次性输出 + 按 CPU 从高到低排序(最常用)
完整命令(显示 ID、容器名、CPU、内存)
docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" | sort -k3 -rh
参数拆解
--no-stream:只输出一次快照,不持续刷新,才能管道排序--format "table xxx":自定义输出字段,制表符分隔.Container:容器短 ID.Name:容器名称.CPUPerc:CPU 使用率(第三列).MemUsage:内存占用
sort -k3 -rh-k3:按第 3 列(CPU 百分比)排序-h:智能识别百分比数字排序-r:倒序,CPU 最高放最上面
只看 CPU TOP5(取占用最高前 5 个)
docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}" | sort -k3 -rh | head -5
极简版(只展示名称 + CPU)
docker stats --no-stream --format "{{.Name}} {{.CPUPerc}}" | sort -k2 -rh
三、字段说明(format 可用占位符)
{{.Container}} 容器ID
{{.Name}} 容器名
{{.CPUPerc}} CPU使用率
{{.MemUsage}} 内存使用/限制
{{.MemPerc}} 内存百分比
{{.NetIO}} 网络IO
{{.BlockIO}} 磁盘IO
{{.PIDs}} 进程数
四、实时交互式工具 ctop(推荐长期监控,自带排序)
docker stats 原生不支持实时动态排序,安装 ctop 一键按 CPU 排序:
# 安装
wget https://github.com/bcicen/ctop/releases/download/v0.7.6/ctop-0.7.6-linux-amd64 -O /usr/local/bin/ctop
chmod +x /usr/local/bin/ctop
# 运行
ctop
快捷键:
c:按 CPU 排序(默认)m:按内存排序q:退出
五、补充:按内存排序备用命令
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k2 -rh
docker compose相关常用命令
docker compose up 详解 + 全套常用Docker Compose命令
一、docker compose up 核心逻辑(重点回答你的疑问)
1、是不是只执行更新操作?
分两种场景,不能一概而论
- 配置/镜像/挂载卷没有任何改动
docker compose up只会检查容器状态:
- 容器已正常运行:直接打印服务日志,不会做任何创建、重启操作;
- 容器停止了:直接启动原有容器,不重建。
- yml配置、镜像、挂载、端口、环境变量有修改
不带-d/ 带-d都会销毁旧容器,基于新配置创建全新容器启动(不会修改原有容器,容器是不可变的)。
容器本身是只读快照,改配置无法原地修改容器,只能重建。
- 关键参数:
docker compose up -d
-d = detached 后台守护进程运行,生产必用,前台会占用终端、Ctrl+C直接停止所有容器。
补充关键特性
- 不会自动删除旧镜像、旧数据卷:只重建容器;
- 数据卷(volumes)只要没删除,数据会保留(数据库、Prometheus时序数据不会丢);
- 纯新增服务:会直接拉起新容器,老服务保持不动。
和 docker kill -s SIGHUP 适用区分
- 改配置文件内容(yml内的scrape、规则):用SIGHUP热重载,不用
up; - 改端口映射、挂载路径、容器命令、镜像版本:必须
docker compose up -d重建容器生效。
二、docker compose up 常用参数
# 后台启动/更新全部服务(最常用)
docker compose up -d
# 只更新、启动指定单个服务(比如只更新prometheus)
docker compose up -d prometheus
# 构建镜像+启动(本地Dockerfile构建场景使用)
docker compose up -d --build
# 强制重建所有容器,即便配置没改
docker compose up -d --force-recreate
# 拉取最新镜像再启动(升级镜像版本)
docker compose pull && docker compose up -d
三、Docker Compose 高频运维命令(分类整理)
🔹 启动/更新类
docker compose up -d
后台启动/更新全部服务,日常部署、改配置重载容器主力命令docker compose up -d 服务名
单独更新某一个容器,例:docker compose up -d grafana
🔹 停止/重启类
docker compose stop
优雅停止所有容器(容器保留,数据、配置都在),可后续up直接启动docker compose stop 服务名
单独停止某个容器docker compose restart
重启全部容器(不读取新配置,只是重启旧容器)
⚠️ 改配置不要用restart,它不会加载compose.yml改动
docker compose restart prometheus
单独重启容器
🔹 彻底销毁(清理环境)
docker compose down
停止并删除容器、网络,数据卷、镜像保留(最安全的清理)docker compose down -v
停止删除容器+网络+数据卷(⚠️ 数据库、监控数据全部清空,测试环境使用,生产禁止)docker compose down --rmi all
删除容器+网络+镜像
🔹 日志排查(排错必备)
docker compose logs
查看全部容器日志docker compose logs -f
实时滚动日志(类似tail -f)docker compose logs -f prometheus
只看Prometheus实时日志docker compose logs --tail 200 prometheus
只看最后200行日志
🔹 状态查看
docker compose ps
查看所有容器运行状态、端口、健康状态docker compose top
查看容器内部进程docker compose config
校验docker-compose.yml语法是否正确(改配置后必校验)
docker compose config
# 无报错=yml格式正常,有报错直接提示语法行号
🔹 镜像操作
docker compose pull
拉取所有服务最新镜像docker compose build
基于Dockerfile构建自定义镜像docker compose images
查看compose用到的镜像列表
🔹 进入容器内部
# 进入prometheus容器交互式终端
docker compose exec -it prometheus /bin/sh
# 进入grafana
docker compose exec -it grafana bash
exec:在正在运行的容器里新开终端,推荐使用;
run:临时新建容器,不用于日常进入。
🔹 扩容(横向扩展,比如多实例节点)
# 将node-exporter扩容为3个实例
docker compose up -d --scale node-exporter=3
四、生产环境标准操作流程(以你的Prometheus+Grafana监控栈举例)
- 修改
docker-compose.yml配置 - 校验配置语法:
docker compose config - 平滑更新容器:
docker compose up -d - 查看日志验证启动:
docker compose logs -f prometheus - 日常临时停止:
docker compose stop - 整机重装清理:
docker compose down(保留数据卷)
五、易错避坑点
docker compose restart不会加载compose.yml新配置,只会重启旧容器;docker compose down -v会删掉持久化卷,Prometheus监控数据、Grafana面板配置会全部丢失;- 前台
docker compose up不要长期使用,关闭终端容器直接退出,必须加-d后台运行; - Prometheus仅修改yml抓取配置:优先
docker kill -s SIGHUP 容器名热重载,无需compose up重建容器。
浙公网安备 33010602011771号