简介
说明
本文介绍使用Docker compose安装Redis的方法。
注意事项
- Docker compose安装Redis是有坑的:默认不会生成redis.conf配置文件,必须通过映射外部配置文件的方式才能生成配置文件。
- 必须将重要数据放到宿主机,防止docker挂了后数据丢失。
- 比如:配置文件、数据、日志
查看镜像
查看镜像
https://hub.docker.com/_/redis

脚本及配置
目录结构
├── docker-compose.yml # docker-compose.yml文件
├── config
│ └── redis.conf # redis配置文件
├── data # 数据库数据文件目录
└── log
└── redis.log # redis日志文件
创建目录的命令
mkdir -p /work/db/redis/{config,data,log}
docker-compose.yml
version: '3'
services:
redis:
# 启动方式
#restart: unless-stopped
# 镜像
image: redis:6.2.7
# 容器名字
container_name: redis6
ports:
- 6379:6379
volumes:
- ./config/redis.conf:/etc/redis/config/redis.conf
- ./data:/data
- ./log:/log
# 在容器中执行的命令
command: redis-server /etc/redis/config/redis.conf
environment:
- TZ=Asia/Shanghai
/work/db/redis/conf/redis.conf
#bind 127.0.0.1 # 只能本地访问 # 默认yes表示开启保护模式,用来限制redis只能本地访问 protected-mode no # 默认no。yes:以守护进程方式启动,在后台运行,yes时无法用配置文件方式启动redis。 daemonize no # RDB持久化。默认是开启的 save "" # AOF持久化。默认是关闭的 appendonly no # 密码 requirepass code753. # 日志 logfile /log/redis.log # 最大内存。默认没限制 maxmemory 200MB # 回收策略。默认是noeviction(不清理) maxmemory-policy allkeys-lru
/work/db/redis/log/redis.log
必须在当前用户下新建此日志文件,并添加写的权限:
sudo touch redis.log; sudo chmod 666 redis.log;
否则会启动失败:

运行docker compose
法1:到配置文件目录下运行
docker compose up
会打印详细启动日志,而且会占用控制台。
在后台运行的方法:docker compose up -d。
法2:指定配置文件
docker compose -f /work/docker/docker-compose/redis6/docker-compose.yml up -d
docker compose的启动、停止等命令,全都是这样的,要么在配置文件目录下执行,要么指定配置文件。
查看运行结果
compose查看
docker compose ls

docker查看
docker ps

连接测试

停止容器
docker compose stop
停止容器,但不删除容器。
启动容器
docker compose start
删除容器
法1:rm
docker compose rm
只删除容器
法2:down
docker compose down
停止容器,然后删除容器。

请先 !