当前位置: 首页 > news >正文

Docker启动两个Redis镜像并配置一主一从

使用 docker inspect 命令
docker inspect 可以查看容器的详细信息,包括 IP 地址。
#格式化输出关键信息(示例:查看端口映射)

docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' 容器名或容器ID

#查看环境变量

docker inspect --format='{{json .Config.Env}}' 容器名或容器ID
#查看单个容器的 IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名或容器ID# 查看多个容器的 IP(分别执行)
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器1
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器2

Docker 启动两个 Redis 镜像并配置一主一从

步骤一:拉取 Redis 镜像
打开终端,执行以下命令拉取 Redis 镜像(以官方镜像为例):

docker pull redis

如果要指定版本,例如 7.4.5 版本,命令如下:

docker pull redis:7.4.5

步骤二:创建 Docker 网络(可选,但推荐)
为了方便容器之间的通信,创建一个自定义的 Docker 网络,执行以下命令:

docker network create redis-network

步骤三:启动主 Redis 容器
执行以下命令启动主 Redis 容器,这里将容器的 6379 端口映射到宿主机的 6379 端口,并将容器加入到前面创建的自定义网络中:

docker run -d --name redis-master \--network redis-network \-p 6379:6379 \redis

步骤四:启动从 Redis 容器并配置主从关系
执行以下命令启动从 Redis 容器,将容器的 6380 端口映射到宿主机的 6380 端口,同时通过 redis-cli --cluster 命令或者在配置文件中配置主从关系。
通过修改配置文件配置,先进入从 Redis 容器:

docker run -d --name redis-slave \--network my-redis-network \-p 6380:6379 \redis
# 进入从 Redis 容器    
docker exec -it redis-slave bash

编辑 Redis 配置文件(通常是 /etc/redis/redis.conf或者/usr/local/etc/redis/redis.conf ),添加或修改以下内容来指定主 Redis 的地址和端口:

slaveof <master_ip> <master_port>

例如,假设主 Redis 在 Docker 网络内的 IP 是 172.18.0.2(可通过 docker inspect 获取),端口 6379

slaveof 172.18.0.2 6379

保存配置文件后,重启从 Redis 容器:

docker restart redis-slave

步骤五:验证主从配置
主 Redis 写入数据验证:

docker exec -it redis-master bash

使用 redis-cli 写入数据,例如:

redis-cli
set key1 value1

从 Redis 读取数据验证:
进入从 Redis 容器:

docker exec -it redis-slave bash

使用 redis-cli 读取数据:

redis-cli
get key1

如果能读取到主 Redis 写入的 value1 ,则说明主从配置成功。

http://www.dtcms.com/a/363707.html

相关文章:

  • Spring Boot数据脱敏方案
  • sed相关知识
  • C++基础组件
  • 【值得收藏】手把手教你用PyTorch构建Transformer英汉翻译系统,从训练到推理
  • 小程序蓝牙低功耗(BLE)外围设备开发指南
  • C++革命性新特性:默认实例导出(exportDefault)让单例模式变得无比简单!
  • Vue2 入门(一)介绍及Demo项目创建
  • GISBox内置免费GIS服务器:地形服务发布与应用全指南
  • ChartView的基本使用
  • Redis 的压缩列表:像快递驿站 “紧凑货架“ 一样的内存优化结构
  • Redis-底层数据结构篇
  • 8.30美团技术岗算法第二题
  • 【C++】15. ⼆叉搜索树
  • WordPress.com 和 WordPress.org 之间的区别说明
  • 系统架构——过度设计
  • IO_HW_9_2
  • 教你 Centos 如何离线安装 rlwrap 插件(内网环境)
  • MATLAB矩阵及其运算(三)矩阵的创建
  • 一文搞懂:0-1整数规划与蒙特卡罗模拟(附MATLAB代码详解)
  • 命令行文本处理小工具:cut、sort、uniq、tr 详解与应用
  • 从零开始的python学习——函数(2)
  • shell复习(2)
  • Flutter环境搭建全攻略之-windows环境搭建
  • 毫米波雷达信号处理步骤顺序
  • 树莓派网页监控
  • [嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译Windows-Opencv库
  • LangGraph 重要注意事项和常见问题
  • MTK Linux DRM分析(二十六)- MTK mtk_drm_ddp_xxx.c
  • 如何创建逻辑卷
  • Shell脚本入门:从零到精通