docker中部署redis

一、拉取镜像

# 拉取最新 redis:6 镜像
docker pull redis:6

# 查看镜像
docker images

二、下载redis.conf文件

官网下载
修改文件:

修改启动默认配置(从上至下依次):

bind 127.0.0.1 # 注释掉这部分,这是限制redis只能本地访问

protected-mode no # 默认yes,开启保护模式,限制为本地访问

daemonize no # 默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

dir  ./ # 输入本地redis数据库存放文件夹(可选)

appendonly yes # redis持久化(可选)

daemonize no。非后台模式,如果为 yes 会的导致 redis 无法启动,因为后台会导致docker无任务可做而退出

三、创建需要挂载的文件夹

mkdir -p /home/docker/redis/{conf,data}

将redis.conf文件放入到/home/docker/redis/conf中

四、启动

docker run \
-d \
-p 6399:6379 \
--name redis \
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /home/docker/redis/data:/data \
redis:6 redis-server /etc/redis/redis.conf 

五、docker-compose

version: '3'
services:
  redis:
    container_name: redis
    image: redis:6
    restart: always
    ports:
      - 6379:6379
    volumes:
      - ./volumes/conf/redis.conf:/etc/redis/redis.conf:rw
      - ./volumes/data:/data:rw
    networks:
      - networks-redis
networks:
  networks-redis:
    driver: bridge
### 配置 DockerRedis 主从复制 #### 创建必要的目录和配置文件 为了确保数据持久化以及便于管理各个实例的配置,在启动容器之前先创建相应的挂载路径并准备配置文件。 对于主节点: ```bash mkdir -p /home/docker/redis6379/conf mkdir -p /home/docker/redis6379/data vi /home/docker/redis6379/conf/redis.conf ``` 在 `/home/docker/redis6379/conf/redis.conf` 文件中,可以适当调整一些参数来适应环境需求,比如关闭保护模式、允许远程连接等[^3]。 同样地,针对从节点也需要执行类似的命令集以建立对应的存储位置和服务端口映射关系。 #### 修改 `redis.conf` 文件中的关键设置项 为了让 Redis 实现主从同步功能,需对两个不同服务实例下的配置做相应更改。具体来说就是编辑各自的服务配置文档,其中涉及到了监听地址绑定解除(`bind`)与安全防护策略(`protected-mode`)等方面的设定: - 对于主服务器而言,保持默认监听所有网络接口即可; - 而作为副本角色存在的次级数据库,则应取消对外部访问权限限制,并指明要跟随哪个上级源站进行数据更新操作; 例如,在从库配置里添加如下指令指向其上游主机: ```properties slaveof master-ip-address 6379 ``` 此处假设主节点运行于 IP 地址为 `master-ip-address` 的机器上,并开放标准端口号供外部请求接入[^5]。 #### 启动 Redis 容器 完成上述准备工作之后就可以通过 Docker 命令行工具分别部署这两个独立却又相互关联的应用程序单元了。下面给出了一组用于初始化主备集群成员的标准脚本片段: ```bash docker run --name=redis-master \ -v /home/docker/redis6379/conf:/usr/local/etc/redis \ -v /home/docker/redis6379/data:/data \ -e REDIS_PASSWORD="your_password_here" \ -d redis:6.0.20 \ redis-server /usr/local/etc/redis/redis.conf --requirepass "your_password_here" docker run --name=redis-slave \ -v /path/to/slave-conf-dir:/usr/local/etc/redis \ -v /path/to/slave-data-dir:/data \ -e REDIS_PASSWORD="your_password_here" \ -d redis:6.0.20 \ redis-server /usr/local/etc/redis/redis.conf --slaveof master-ip-address 6379 --requirepass "your_password_here" ``` 注意替换模板里的占位符部分(如密码字符串),使其更贴合实际应用场景的要求[^4]。 #### 使用 Docker Compose 方便快捷的方式构建多容器应用架构 如果希望简化整个过程的话还可以考虑借助 Docker Compose 工具实现自动化编排任务处理流程。只需要编写一份 YAML 格式的定义清单就能轻松搞定一切繁杂事务! 示例项目结构可能看起来像是这样子: ```yaml version: '3' services: redis-master: image: redis:latest container_name: redis- ./conf/master.conf:/usr/local/etc/redis/redis.conf - ./data/master:/data command: ["redis-server", "/usr/local/etc/redis/redis.conf"] redis-slave: depends_on: - redis-master image: redis:latest container_name: redis-slave environment: - REDIS_MASTER_HOST=redis-master - REDIS_MASTER_PORT=6379 ports: - "6380:6380" volumes: - ./conf/slave.conf:/usr/local/etc/redis/redis.conf - ./data/slave:/data command: ["redis-server", "/usr/local/etc/redis/redis.conf"] ``` 此方法不仅能够有效减少手动干预次数而且还能提高工作效率,非常适合开发测试阶段频繁迭代变更场景下使用[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值