20250706-4-Docker 快速入门(上)-常用容器管理命令_笔记
一、常用管理命令
1. 选项
1)ls
功能:列出容器
- 常用参数:
- -a:查看所有容器包含退出的
- -q:列出所有容器ID
- -l:列出最新创建的容器状态
- 使用技巧:
- 容器很多时使用docker ps -l可以快速找到最新创建的容器
- docker container ls是docker ps的新式写法
- 示例:
- docker ps -a:查看所有容器
- docker ps -q:获取所有容器ID用于批量操作
2)exec
- 功能:在运行容器中执行命令
- 两种使用方式:
- 交互式进入容器:docker exec -it <容器ID或名称> /bin/bash
- 免交互执行命令:docker exec <容器ID或名称> <命令>
- 应用场景:
- 脚本中需要在容器内执行命令但不需要人工交互
- 调试时进入容器查看环境
- 示例:
- docker exec web ls:在web容器中执行ls命令
- docker exec -it web /bin/bash:进入web容器的bash shell
3)commit
- 功能:从容器创建新镜像
- 使用场景:
- 临时保存容器状态
- 不熟悉Dockerfile时快速创建镜像
- 缺点:
- 不利于后期运维管理
- 无法追溯镜像构建过程
- 推荐使用Dockerfile替代
- 示例:
- docker commit <容器ID> <新镜像名>
4)cp
功能:在容器和宿主机间拷贝文件/文件夹
- 使用方式:
- 宿主机→容器:docker cp <宿主机文件> <容器ID>:<容器路径>
- 容器→宿主机:docker cp <容器ID>:<容器路径> <宿主机文件>
- 示例:
- docker cp test.txt web:/root/:将test.txt拷贝到web容器的/root目录
5)logs
功能:获取容器日志
- 应用场景:
- 故障排查
- 监控服务运行状态
- 示例:
- docker logs web:查看web容器的日志输出
6)top
- 功能:显示容器运行的进程
- 优势:
- 无需进入容器即可查看进程
- 示例:
- docker top web:查看web容器中的进程
7)stats
功能:显示容器资源使用统计
- 参数:
- --no-stream:只输出一次统计结果
- 监控指标:
- CPU使用率
- 内存使用量/限制
- 网络I/O
- 块设备I/O
- 脚本应用:
- 使用awk提取特定指标值
- 示例:docker stats --no-stream | awk 'NR==2{print$3}'获取CPU使用率
8)prune
- 功能:移除已停止的容器
- 批量清理:
- docker container prune:清理所有已停止容器
- docker rm -f$(docker ps -aq):强制删除所有容器(包括运行中的)
- 注意事项:
- 默认不会删除运行中的容器
- 需要加-f参数才能强制删除运行中的容器
二、知识小结
知识点 | 核心内容 | 关键命令/参数 | 应用场景 |
容器列表查看 | 查看运行中的容器 | docker ps docker container ls | 基础容器状态检查 |
最新容器查看 | 显示最近创建的容器 | docker ps -l | 快速定位最新操作 |
容器详细信息 | 查看容器完整信息 | docker inspect | 故障排查/配置检查 |
容器交互操作 | 进入容器执行命令 | docker exec -it [容器] /bin/bash | 容器内调试 |
非交互式命令执行 | 在容器内执行单条命令 | docker exec [容器] ls / | 自动化脚本集成 |
容器提交镜像 | 将容器保存为新镜像 | docker commit [容器] [镜像名] | 环境快照(不推荐) |
文件拷贝操作 | 宿主机与容器间文件传输 | docker cp [文件] [容器]:[路径] | 配置文件部署 |
日志查看 | 查看容器运行日志 | docker logs [容器] | 故障排查 |
资源监控 | 查看容器资源使用情况 | docker stats docker top [容器] | 性能监控 |
端口检查 | 查看容器暴露端口 | docker port [容器] | 网络配置验证 |
容器生命周期管理 | 启动/停止/重启容器 | docker start/stop/restart | 日常运维 |
容器清理 | 删除已停止的容器 | docker rm $(docker ps -aq) | 系统清理 |
批量操作 | 强制删除所有容器 | docker rm -f $(docker ps -aq) | 环境重置 |