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 标签更新导致环境不一致。
Docker 镜像拉取流程 用户执行 pull 命令 Docker 客户端 镜像仓库 (Docker Hub) 本地镜像存储 拉取完成后,镜像分层存储在本地,可通过 docker images 查看

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 挂载数据卷,数据会保留在宿主机;若未挂载,容器删除后数据将永久丢失。冒烟测试环境建议不挂载数据卷,确保每次测试从干净状态开始。
Docker 容器生命周期管理 镜像 (Image) 创建 (create) 运行 (start) 停止 (stop) 删除 (rm) docker run = docker create + docker start,一步完成创建与启动 docker rm -f 可强制删除运行中的容器(stop + rm 合并)

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 编排奠定基础。