docker-compose安装单机Redis
准备工作
准备挂载的文件redis.conf和/data文件夹
touch /home/redis-conf/redis.conf
mkdir /home/redis-conf/data
## 修改权限
chmod +xrw /home/redis-conf/redis.conf
chmod +xrw /home/redis-conf/data
配置redis.conf
bind 192.16.0.70 #默认的是127.0.0.1,这样的话只有本机能访问,0.0.0.0表示任意地址可访问,我们配置的192.16.0.70是我们自己分配的网段
port 6379 #redis服务端口,默认是6379
daemonize yes #默认是no,修改为yes后redis启动在后台运行,否则会在前台挂起运行
requirepass 123456 #配置redis访问密码
dir /etc/redis #redis工作目录,默认是当前目录,aof备份、rdb备份文件就保存在这个目录中
logfile /etc/redis/redis.log #日志文件,默认为空,可以指定日志路径与日志名称
save 3600 1 #rdb备份的默认配置,3600秒后,如果至少有一个键值改变就执行rdb备份
save 300 100 #rdb备份的默认配置,300秒后,如果至少有一百个键值改变就执行rdb备份
save 60 10000 #rdb备份的默认配置,60秒后,如果至少有一万个键值改变就执行rdb备份
appendonly yes #aof备份,默认为no关闭状态,yes为启用aof备份
appendfilename "appendonly.aof" #aof备份文件名称,默认为"appendonly.aof"
appendfsync everysec #aof备份同步频率,默认使用everysec,每秒同步一次数据写入aof备份中,always,每次写入都立刻同步到aof备份中,no,不自动同步到aof备份中需要手动同步
auto-aof-rewrite-percentage 100 #比上次重写后的体量增加了100%时自动触发重写,与下面的配置一起使用
auto-aof-rewrite-min-size 64mb #当aof备份文件大小超过64mb时触发重写,最好是使用手动执行bgrewriteaof
aof-load-truncated no #设置为yes,当aof备份文件损坏redis重启服务时发出日志通知用户这个事件,并继续启动,设置为no时,就抛出错误并拒绝启动
编写docker-compose脚本
分配给redis服务的网段是192.168.0.70
分配给redis内部的端口为6379
分配给redis外部的端口为6370
挂载容器卷为redis.conf文件和/data文件夹
version: "3"
# 虚拟网络配置,分配虚拟IP地址,当前配置使容器之间组成局域网(与driver的选择有关)
networks:
my-net:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.0.0/24
services:
# 配置redis服务
myredis:
image: redis
container_name: "myredis"
networks:
my-net:
ipv4_address: 192.168.0.70
ports:
- "6370:6379"
volumes:
- /home/redis-conf/data:/data
- /home/redis-conf/redis.conf:/usr/local/etc/redis/redis.conf
restart: "always"
# 配置nginx服务
mynginx:
image: nginx
container_name: "mynginx"
networks:
my-net:
ipv4_address: 192.168.0.80 #指定nginx容器IP地址
ports:
- "3500:80" #对主机80端口的访问会映射到容器的80端口
volumes:
- /home/nginx-conf/nginx.conf:/etc/nginx/nginx.conf
- /home/nginx-conf/conf:/etc/nginx/conf.d
- /home/nginx-conf/html:/usr/share/nginx/html
- /home/nginx-conf/logs:/var/log/nginx
#tomcat启动完成再启动nginx
depends_on:
- auth-1
- auth-2
- auth-3
# 配置springboot工程auth-1服务
auth-1:
image: auth-image:v1
container_name: "auth-1"
networks:
my-net:
ipv4_address: 192.168.0.81
ports:
- "8081:8089"
restart: "always"
# 配置springboot工程auth-2服务
auth-2:
image: auth-image:v1
container_name: "auth-2"
networks:
my-net:
ipv4_address: 192.168.0.82
ports:
- "8082:8089"
restart: "always"
# 配置springboot工程auth-3服务
auth-3:
image: auth-image:v1
container_name: "auth-3"
networks:
my-net:
ipv4_address: 192.168.0.83
ports:
- "8083:8089"
restart: "always"
启动指定的redis服务
docker-compose -f docker-compose.yml up -d myredis
查看启动情况
[root@ecs-140051 tomcat-compose]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b6c24f02b0f9 redis "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:6370->6379/tcp, :::6370->6379/tcp myredis