3. Docker 基础命令:镜像拉取、容器运行、查看日志、进入容器、停止与删除容器的常用命令实操
在数据库缓存回归冒烟测试中,Docker 是编排缓存服务(如 Redis、Memcached)的核心工具。掌握 Docker 基础命令,能够快速拉起测试环境、验证服务状态并清理资源。本节将围绕五个核心操作进行实操讲解。
3.1 镜像拉取:从仓库获取缓存服务镜像
镜像拉取是容器化部署的第一步。使用 docker pull 命令从镜像仓库(默认 Docker Hub)下载指定名称和标签的镜像。
命令格式:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
实操示例:拉取 Redis 7.0 与 Memcached 1.6 镜像
# 拉取 Redis 7.0 镜像(默认 latest 标签)
docker pull redis:7.0
# 拉取 Memcached 1.6 镜像
docker pull memcached:1.6
# 查看本地已拉取的镜像列表
docker images
| 参数 | 说明 | 示例 |
|---|---|---|
NAME |
镜像名称,如 redis、memcached |
redis |
TAG |
版本标签,不指定则默认 latest |
7.0、1.6 |
--platform |
指定平台架构(如 linux/amd64) | --platform linux/amd64 |
冒烟测试建议: 在回归冒烟脚本中,建议显式指定镜像 TAG(如
redis:7.0),避免因 latest 标签更新导致环境不一致。
3.2 容器运行:启动缓存服务实例
docker run 命令用于从镜像创建并启动容器。在缓存服务部署中,需要关注端口映射、数据持久化和环境变量配置。
命令格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
实操示例:启动 Redis 与 Memcached 容器
# 启动 Redis 容器,映射宿主机 6379 端口
docker run -d --name redis-cache -p 6379:6379 redis:7.0
# 启动 Memcached 容器,映射宿主机 11211 端口,分配 128MB 内存
docker run -d --name memcached-cache -p 11211:11211 memcached:1.6 memcached -m 128
# 查看运行中的容器
docker ps
| 参数 | 说明 | 缓存服务场景 |
|---|---|---|
-d |
后台运行容器(detach) | 缓存服务常驻后台 |
--name |
指定容器名称 | 便于后续管理 |
-p |
端口映射:宿主机端口:容器端口 | Redis:6379, Memcached:11211 |
-v |
挂载数据卷(持久化) | Redis RDB/AOF 持久化 |
-e |
设置环境变量 | Redis 密码配置 |
端口冲突注意: 若宿主机 6379 端口已被占用,可映射到其他端口,如
-p 16379:6379。冒烟测试中建议使用非标准端口避免干扰。
3.3 查看日志:验证服务启动状态
容器启动后,通过 docker logs 查看标准输出日志,确认缓存服务是否正常初始化。
命令格式:
docker logs [OPTIONS] CONTAINER
实操示例:查看 Redis 与 Memcached 日志
# 查看 Redis 容器日志(最近 50 行)
docker logs --tail 50 redis-cache
# 实时跟踪 Memcached 日志输出
docker logs -f memcached-cache
# 查看带时间戳的日志
docker logs -t redis-cache
| 参数 | 说明 | 使用场景 |
|---|---|---|
--tail N |
显示最后 N 行日志 | 快速查看启动信息 |
-f |
实时跟踪日志输出 | 调试启动问题 |
-t |
显示时间戳 | 排查时序问题 |
冒烟验证要点: Redis 启动日志应包含
Ready to accept connections;Memcached 应显示 max bytes=134217728 等内存配置信息。
3.4 进入容器:交互式调试与配置检查
使用 docker exec 进入运行中的容器,执行缓存服务命令行工具进行冒烟验证。
命令格式:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
实操示例:进入容器执行缓存命令
# 进入 Redis 容器并执行 ping 命令
docker exec redis-cache redis-cli ping
# 进入 Memcached 容器交互式 shell
docker exec -it memcached-cache sh
# 在容器内执行 stats 命令查看 Memcached 状态
echo -e "stats\nquit" | docker exec -i memcached-cache nc localhost 11211
| 参数 | 说明 | 示例 |
|---|---|---|
-i |
保持标准输入打开(interactive) | 管道输入命令 |
-t |
分配伪终端(tty) | 交互式 shell |
-it |
组合使用,进入交互式终端 | docker exec -it redis-cache sh |
冒烟验证命令:
# Redis 基本操作验证
docker exec redis-cache redis-cli SET test_key "hello"
docker exec redis-cache redis-cli GET test_key
# Memcached 基本操作验证
echo -e "set test_key 0 60 5\nhello" | docker exec -i memcached-cache nc localhost 11211
echo -e "get test_key\nquit" | docker exec -i memcached-cache nc localhost 11211
3.5 停止与删除容器:测试环境清理
冒烟测试完成后,需要及时清理容器资源,避免占用系统端口和磁盘空间。
命令格式:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker rm [OPTIONS] CONTAINER [CONTAINER...]
实操示例:停止并删除缓存容器
# 停止运行中的容器
docker stop redis-cache memcached-cache
# 删除已停止的容器
docker rm redis-cache memcached-cache
# 强制删除运行中的容器(慎用)
docker rm -f redis-cache
# 清理所有已停止的容器
docker container prune
| 命令 | 作用 | 注意事项 |
|---|---|---|
docker stop |
优雅停止容器(发送 SIGTERM) | 等待默认 10 秒超时 |
docker kill |
强制停止容器(发送 SIGKILL) | 可能导致数据丢失 |
docker rm |
删除已停止的容器 | 需先停止或加 -f |
docker container prune |
清理所有已停止容器 | 不可恢复,谨慎使用 |
数据持久化注意: 删除容器前,若 Redis 使用了
-v 挂载数据卷,数据会保留在宿主机;若未挂载,容器删除后数据将永久丢失。冒烟测试环境建议不挂载数据卷,确保每次测试从干净状态开始。
3.6 命令速查表
以下表格汇总了本节所有核心命令,便于日常冒烟测试快速参考:
| 操作 | 命令示例 | 说明 |
|---|---|---|
| 拉取镜像 | docker pull redis:7.0 |
从仓库下载指定版本镜像 |
| 查看镜像 | docker images |
列出本地所有镜像 |
| 运行容器 | docker run -d --name redis-cache -p 6379:6379 redis:7.0 |
后台启动 Redis 容器 |
| 查看容器 | docker ps |
列出运行中的容器 |
| 查看日志 | docker logs --tail 50 redis-cache |
查看容器最近 50 行日志 |
| 进入容器 | docker exec -it redis-cache sh |
进入容器交互式 shell |
| 停止容器 | docker stop redis-cache |
优雅停止容器 |
| 删除容器 | docker rm redis-cache |
删除已停止的容器 |
| 强制删除 | docker rm -f redis-cache |
强制删除运行中的容器 |
冒烟测试脚本模板: 将上述命令组合成 Shell 脚本,可实现一键部署、验证、清理的自动化流程,为后续 Docker Compose 编排奠定基础。