Docker 运行 Redis 的完整参数解析
在 Docker 中运行 Redis,可以使用 docker run
命令,并结合各种参数来优化性能、安全性和管理。以下是 Redis 容器的完整运行命令及参数解析。
如果还没有 redis
镜像,首先要拉取镜像 docker pull redis
。
1. 基本运行命令
docker run -d --name myredis -p 6379:6379 redis
参数解析
-d
:后台运行 Redis--name myredis
:指定容器名称为myredis
-p 6379:6379
:将宿主机6379
端口映射到容器6379
端口redis
:使用官方 Redis 镜像
2. 运行 Redis 并挂载数据卷
docker run -d --name myredis \
-p 6379:6379 \
-v /myredis/data:/data \
redis
新增参数
-v /myredis/data:/data
:将 Redis 数据持久化到/myredis/data
目录
3. 运行 Redis 并指定配置文件
docker run -d --name myredis \
-p 6379:6379 \
-v /myredis/redis.conf:/etc/redis/redis.conf \
redis redis-server /etc/redis/redis.conf
新增参数
-v /myredis/redis.conf:/etc/redis/redis.conf
:挂载本地 Redis 配置文件redis-server /etc/redis/redis.conf
:使用自定义配置文件启动 Redis
4. 设置 Redis 访问密码
docker run -d --name myredis \
-p 6379:6379 \
-e REDIS_PASSWORD="mypassword" \
redis --requirepass "mypassword"
新增参数
-e REDIS_PASSWORD="mypassword"
:设置 Redis 访问密码--requirepass "mypassword"
:Redis 配置项,强制需要密码访问
5. 运行 Redis 并限制资源
docker run -d --name myredis \
-p 6379:6379 \
--memory=512m --cpus=1 \
redis
新增参数
--memory=512m
:限制 Redis 最大使用 512MB 内存--cpus=1
:限制 Redis 只能使用 1 核 CPU
6. 运行 Redis 并使用自定义网络
docker network create redis-network
docker run -d --name myredis \
--network redis-network \
redis
新增参数
docker network create redis-network
:创建 Docker 自定义网络--network redis-network
:让 Redis 运行在redis-network
网络中
7. 允许远程访问 Redis
docker run -d --name myredis \
-p 6379:6379 \
redis redis-server --bind 0.0.0.0 --protected-mode no
新增参数
--bind 0.0.0.0
:允许所有 IP 连接 Redis--protected-mode no
:关闭 Redis 保护模式
8. 运行 Redis 以持久化数据(RDB & AOF)
docker run -d --name myredis \
-p 6379:6379 \
-v /myredis/data:/data \
redis redis-server --appendonly yes
新增参数
--appendonly yes
:开启 Redis AOF(Append-Only File)模式,提高数据安全性
9. 运行 Redis 并指定最大内存
docker run -d --name myredis \
-p 6379:6379 \
redis redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru
新增参数
--maxmemory 256mb
:限制 Redis 最大使用 256MB 内存--maxmemory-policy allkeys-lru
:当内存满时,删除最久未使用的键
10. Redis 运行参数完整示例
docker run -d --name myredis \
-p 6379:6379 \
-v /myredis/data:/data \
-v /myredis/redis.conf:/etc/redis/redis.conf \
--memory=512m --cpus=1 \
--restart=always \
redis redis-server /etc/redis/redis.conf \
--requirepass "mypassword" \
--appendonly yes \
--maxmemory 256mb \
--maxmemory-policy allkeys-lru
完整参数解析
-d
:后台运行 Redis--name myredis
:指定 Redis 容器名称-p 6379:6379
:端口映射-v /myredis/data:/data
:挂载数据目录-v /myredis/redis.conf:/etc/redis/redis.conf
:挂载 Redis 配置文件--memory=512m --cpus=1
:限制 Redis 资源使用--restart=always
:系统重启后自动启动--requirepass "mypassword"
:设置 Redis 访问密码--appendonly yes
:开启 AOF 持久化--maxmemory 256mb --maxmemory-policy allkeys-lru
:设置最大内存及淘汰策略
配置文件官网下载地址:http://download.redis.io/redis-stable/redis.conf
如果已经在redis.conf
中修改了配置,运行时指定了配置文件,就不要使用下面这些命令行参数了。要不然配置文件中的这些配置项不生效,以命令行为准。–requirepass “mypassword”
–appendonly yes
–maxmemory 256mb
–maxmemory-policy allkeys-lru
11. 进入 Redis 容器
运行 Redis 容器后,可以使用以下命令进入:
docker exec -it myredis redis-cli
如果 Redis 需要密码:
docker exec -it myredis redis-cli -a "mypassword"
12. 停止和删除 Redis 容器
docker stop myredis # 停止容器
docker rm myredis # 删除容器
如果 Redis 运行时创建了 myredis
相关的 Docker 网络:
docker network rm redis-network
总结
- 基础运行:
docker run -d --name myredis -p 6379:6379 redis
- 持久化数据:
docker run -d -v /myredis/data:/data redis
- 自定义配置:
docker run -d -v /myredis/redis.conf:/etc/redis/redis.conf redis redis-server /etc/redis/redis.conf
- 设置密码:
docker run -d -e REDIS_PASSWORD="mypassword" redis --requirepass "mypassword"
- 资源限制:
docker run -d --memory=512m --cpus=1 redis
- 自定义网络:
docker network create redis-network docker run -d --network redis-network redis
以上是 Docker 运行 Redis 的完整参数和配置方法,具体使用哪种方式可以根据实际需求选择。