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

发布于:2025-09-04 ⋅ 阅读:(16) ⋅ 点赞:(0)

使用 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 ,则说明主从配置成功。


网站公告

今日签到

点亮在社区的每一天
去签到