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
posted @ 2023-07-03 23:00  sunpeiyu  阅读(601)  评论(0编辑  收藏  举报