Docker 一键部署 Redis 单机

198 阅读2分钟

前言

在企业级应用中,Redis作为一个高性能的内存数据库,常常被用来进行缓存、会话存储等任务。为了简化Redis的部署和管理,使用Docker和Docker Compose来进行容器化部署是一种非常有效的方法。本文将详细介绍如何在CentOS环境下使用Docker和Docker Compose部署一个独立的Redis实例,包括从创建目录、配置文件到启动容器的完整过程。

环境

  • Docker 25.0.5
  • docker-compose v2.25.0

CentOS在线安装指定版本Docker

CentOS在线安装指定版本docker-compose

部署步骤

脚本内容

#!/bin/bash

################################################################
#########################请先进行参数设置!#######################
################################################################
# 节点端口
port=6390
# redis版本
version=7.0.12
# 安装路径
path=/home/lbs/software/redis/redis-standalone
# 认证密码
passwd=Lbs@2024
# 最大内存限制
maxmemory=2g
# 过期策略
maxmemory-policy=allkeys-lru

echo -e "############################创建目录与配置文件############################\n"
mkdir -p ${path}/node-${port}/conf
cat << EOF > ${path}/node-${port}/conf/redis.conf
port ${port}
requirepass ${passwd}
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
maxmemory ${maxmemory}
maxmemory-policy ${maxmemory-policy}
EOF

echo -e "############################创建docker-compose.yml文件############################\n"
cat << EOF > ${path}/docker-compose.yml
version: '3.8'
services:
  redis-${port}:
    image: redis:${version}
    container_name: redis-${port}
    ports:
      - "${port}:${port}"
    volumes:
      - ${path}/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - ${path}/node-${port}/data:/data
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf
EOF

echo -e "############################启动容器############################\n"
docker-compose -f ${path}/docker-compose.yml up -d

使用方法

  1. 将上述脚本保存为deploy_redis_standalone.sh文件。
  2. 调整脚本最开始的部分的参数设置,如版本、路径、密码、端口等
  3. 给予执行权限并运行
    chmod +x deploy_redis_standalone.sh && ./deploy_redis_standalone.sh
    

结果验证

首先需要进入脚本中参数设置的安装路径中

  1. 验证目录层级

    [lbs@master redis-standalone]$ tree -L 3
    .
    ├── docker-compose.yml
    └── node-6390
        ├── conf
        │   └── redis.conf
        └── data
            └── appendonlydir
    
  2. 验证容器状态

    [lbs@master redis-standalone]$ docker-compose ps -a 
    WARN[0000] /home/lbs/software/redis/redis-standalone/docker-compose.yml: `version` is obsolete 
    NAME         IMAGE          COMMAND                  SERVICE      CREATED          STATUS         PORTS
    redis-6390   redis:7.0.12   "docker-entrypoint.s…"   redis-6390   10 seconds ago   Up 9 seconds   6379/tcp, 0.0.0.0:6390->6390/tcp, :::6390->6390/tcp
    
  3. 验证节点状态

    [lbs@master redis-standalone]$ docker-compose exec redis-6390 redis-cli -a Lbs@2024 -p 6390 ping
    WARN[0000] /home/lbs/software/redis/standalone/docker-compose.yml: `version` is obsolete 
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    PONG
    

结语

通过本文的步骤,你应该已经成功在CentOS环境下使用Docker和Docker Compose部署了一个独立的Redis实例。使用这种方法,可以极大地简化Redis的安装和配置过程,同时也便于后续的维护和管理。如果在实际操作过程中遇到任何问题,欢迎在评论区交流讨论。希望这篇文章对你有所帮助,祝你在Redis的使用上取得更大的成功。