【Docker Compose】 部署单机 Redis (带自定义配置)

前言:本文将介绍如何使用 Docker Compose 部署单机 Redis,并使用自定义配置文件。在开始之前,请确保你已经安装了 Docker 和 Docker Compose。你可以参考我之前的文章获取安装指南。

1. 下载并修改配置文件

1.1 为什么需要自定义 Redis 配置文件?

默认情况下,通过 Docker 部署的 Redis 容器会使用其内部的默认配置。然而,这个默认配置通常不包含生产环境所需的关键设置,例如密码保护、持久化策略等。因此,为了提高 Redis 实例的安全性和数据可靠性,我们需要使用自定义的配置文件。

1.2 下载配置文件

访问 Redis 官方下载页面获取不同版本的配置文件:

http://download.redis.io/releases/

找到对应的版本下载,此处以redis7.0.12为例

下载文件后解压该文件后找到redis.config文件

1.3 修改配置文件

首先创建配置文件目录、持久化数据目录

# 创建配置文件目录、持久化数据目录
mkdir -p /data/redis/{conf,data}

redis.config文件放到/data/redis/conf目录下

我们需要修改一些redis的默认配置,比如关闭保护模式,允许远程连接、开启AOF持久化、设置允许访问的ip地址、redis的密码等

1.3.1 绑定 IP 地址(bind

找到 bind 127.0.0.1 -::1 这一行,将其修改为允许来自任何 IP 地址的连接0.0.0.0

注意: 在生产环境中,为了安全起见,建议将 bind 设置为允许连接的特定 IP 地址,而不是 0.0.0.0

1.3.2 关闭保护模式,允许远程连接(protected-mode)

找到 protected-mode yes 这一行,将其修改为 no 以允许远程连接:

警告: 关闭保护模式会使你的 Redis 实例暴露在公网上,如果未设置密码,将存在安全风险。请务必设置强密码。

1.3.3 开启AOF持久化(appendonly

找到 appendonly no 这一行,将其修改为 yes 以启用 AOF(Append Only File)持久化,确保数据不会丢失:

1.3.4 requirepass设置redis密码

找到被注释掉的 # requirepass foobared 这一行,取消注释并将 foobared 替换为你自己的强密码:

取消注释,设置密码

2. 编写docker-compose文件

我们在 /data/redis/ 目录下创建一个 docker-compose.yaml 文件来定义 Redis 服务的配置。

vim /data/redis/docker-compose.yaml

将以下配置粘贴到文件中并保存:

version: '3'
services:
  redis: # 服务名称
    image: redis:7.0.12 # redis镜像版本
    container_name: redis # 容器名称
    ports:
      - 9736:6379 # 指定宿主机端口与容器端口映射关系,宿主机:容器
    volumes:
      - /data/redis/conf/redis.conf:/etc/redis/redis.conf # 映射配置文件目录,宿主机:容器
      - /data/redis/data:/data # 映射数据目录,宿主机:容器
    restart: always # 容器开机自启
    privileged: true # 获取宿主机root权限
    command: ["redis-server","/etc/redis/redis.conf"] # 指定配置文件启动redis-server进程

配置说明:

  • ports: 将宿主机的 9736 端口映射到容器内部 Redis 默认的 6379 端口。选择 9736 而不是默认的 6379 可以降低被自动化扫描的风险。
  • volumes:
    • /data/redis/conf/redis.conf:/etc/redis/redis.conf: 将宿主机上的配置文件目录挂载到容器内的 /etc/redis/ 目录,并指定使用该配置文件启动 Redis 服务。容器内部并没有默认的 **/etc/redis/redis.conf** 文件,而是通过这个映射来加载我们自定义的配置。
    • /data/redis/data:/data: 将宿主机上的数据目录挂载到容器内的 /data 目录,用于持久化 Redis 数据。
  • command: 指定容器启动时执行的命令,告诉 redis-server 使用我们挂载到容器内的 /etc/redis/redis.conf 文件作为其配置文件。

3. 启动

在包含 docker-compose.yaml 文件的 /data/redis/ 目录下,运行以下命令来启动 Redis 服务:

docker-compose -up -d

执行此命令后,Docker Compose 将会拉取 Redis 镜像(如果本地不存在),创建并启动名为 redis 的容器,并按照我们在 docker-compose.yaml 文件中定义的配置运行。

你可以使用以下命令来查看容器的运行状态:

docker ps

可以看到名为 redis 的容器正在运行,并且宿主机的 9736 端口已经映射到容器的 6379 端口。

总结

通过本文,你已经学会了使用 Docker Compose 部署单机 Redis,并配置了自定义的 redis.conf 文件,包括设置监听 IP、关闭保护模式、开启 AOF 持久化以及设置连接密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值