Docker Compose 部署 Redis 用于开发调试
Redis 是一个开源的高性能键值存储系统,广泛应用于缓存、会话管理、消息队列等场景。本文介绍如何通过 Docker Compose 快速部署 Redis 5.0.12 单节点实例,用于开发和调试。
环境要求
- Docker 19.03 或更高版本
- Docker Compose 1.27.0 或更高版本
Docker Compose 配置详解
以下是 docker-compose.yml
文件配置,用于启动一个 Redis 容器,并设置持久化、密码认证及端口映射。
docker-compose.yml
services:
redis:
image: redis:5.0.12
restart: always
mem_limit: 1G
volumes:
- ./storage:/data
command: redis-server --appendonly yes --requirepass _admin123
ports:
- "16379:6379"
networks:
- custom
container_name: redis
hostname: redis
networks:
custom:
external: true
driver: bridge
配置说明
-
镜像与容器:
- 使用 Redis 5.0.12 官方镜像,适合开发和调试环境使用。
container_name
指定容器名称为redis
,便于管理。hostname
设置为redis
,用于容器内主机名解析。
-
端口映射:
16379:6379
将主机的 16379 端口映射到容器的 Redis 默认端口 6379,客户端可以通过localhost:16379
连接到 Redis 服务。
-
资源限制:
mem_limit: 1G
限制容器最大使用 1GB 内存,防止在开发环境中资源耗尽。
-
挂载卷:
./storage:/data
挂载本地目录./storage
到容器内的/data
目录,用于存储 Redis 的持久化数据,确保容器重启后数据不会丢失。
-
命令:
redis-server --appendonly yes --requirepass _admin123
启动 Redis 并启用 AOF (Append-Only File) 持久化,同时设置访问密码为_admin123
。
-
网络配置:
- 使用名为
custom
的外部网络,确保 Redis 容器可以与其他服务进行通信。
- 使用名为
启动 Redis
确保已经安装了 Docker 和 Docker Compose,并在项目根目录下创建了 docker-compose.yml
文件。
-
启动 Redis 服务:
docker-compose up -d
-
查看容器状态:
docker-compose ps
输出示例:
Name Command State Ports ----------------------------------------------------------------------------- redis docker-entrypoint.sh redis ... Up 0.0.0.0:16379->6379/tcp
-
使用 Redis 客户端连接:
你可以通过以下命令使用
redis-cli
连接 Redis:redis-cli -h localhost -p 16379 -a _admin123
如果连接成功,可以执行一些简单的命令:
127.0.0.1:16379> PING PONG
-
进入 Redis 容器进行调试:
docker exec -it redis /bin/bash
在容器内,你可以使用
redis-cli
或其他工具进行进一步的操作。
常见问题
- 连接失败:请确保防火墙允许 16379 端口的访问,并确认 Redis 容器已成功启动。
- 持久化问题:请确保本地挂载的
./storage
目录存在且具有正确的读写权限,否则 Redis 数据可能无法持久化。
总结
通过 Docker Compose,我们可以方便地部署 Redis 实例,并在开发环境中进行调试和测试。本文中的配置允许 Redis 数据持久化,并通过密码进行访问控制。你可以根据实际需求进一步优化或扩展该配置,例如增加主从节点或哨兵模式来构建高可用 Redis 集群。