redis1目录包含以下几个文件
redis1
redis1/data
redis1/redis.yaml
redis1/redis.conf
redis.yaml
version: '3' #设置docker compose 版本
services: #设置services
redis:
image: redis:6.2.6 #镜像名称
container_name: redis_daemo1 #容器名称
restart: always #重启docker引擎后该容器也重启
ports:
- 6379:6379 #本地端口号与容器内部端口号
volumes: #指定挂载目录
- ./redis.conf:/usr/local/etc/redis/redis.conf:rw #redis.conf文件和data目录分别映射了主机的redis.conf文件和主机的data目录
- ./data:/data:rw
redis.conf
bind 0.0.0.0
protected-mode no
port 6379 #这个对应的是容器内部的port(端口号)
timeout 0
save 900 1 # 900s内至少一次写操作则执行bgsave进行RDB持久化
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
requirepass 123456
redis2目录包含以下几个文件
redis2
redis2/data
redis2/redis.yaml
redis2/redis.conf
redis2.yaml
version: '3' #设置docker compose 版本
services: #设置services
redis:
image: redis:6.2.6 #镜像名称
container_name: redis_daemo1 #容器名称
restart: always #重启docker引擎后该容器也重启
ports:
- 7000:6379 #本地端口号与容器内部端口号
volumes: #指定挂载目录
- ./redis.conf:/usr/local/etc/redis/redis.conf:rw #redis.conf文件和data目录分别映射了主机的redis.conf文件和主机的data目录
- ./data:/data:rw
redis.conf
bind 0.0.0.0
protected-mode no
port 6379 #这个对应的是容器内部的port(端口号)
timeout 0
save 900 1 # 900s内至少一次写操作则执行bgsave进行RDB持久化
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
requirepass 123456
解决的主要问题:
command:
/bin/bash -c "redis-server /usr/local/etc/redis/redis.conf " #使用command可以覆盖容器启动后默认执行的命令。
这条命令在重复执行的时候会出现问题,导致无法启动两个独立的redis服务