You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用YugabyteDB与Docker持久化卷时出现地址分配失败问题

问题解决:Docker挂载持久化卷重启YugabyteDB容器失败

问题现象

首次运行挂载持久化卷的YugabyteDB Docker容器时一切正常,但重新创建容器并复用现有卷后,容器启动失败,报错如下:

master.err :
./../src/yb/master/master_main.cc:131] Network error (yb/util/net/socket.cc:325): Error binding socket to 172.28.0.3:7100: Cannot assign requested address (system error 99)
@ 0x2938618 google::LogMessage::SendToLog()
@ 0x29394d3 google::LogMessage::Flush()
@ 0x29399cf google::LogMessageFatal::~LogMessageFatal()
@ 0x2677cde main
@ 0x7fb112f46825 __libc_start_main
@ 0x260802e _start

根因分析

持久化卷内的yb-data/conf/yugabyted.conf文件中,advertise_address字段记录了旧容器的IP地址(例如"advertise_address": "172.28.0.3")。重新创建容器后,Docker会分配新IP,但YugabyteDB启动时仍读取旧配置里的IP尝试绑定,导致端口绑定失败。

解决方法

方法1:手动修改配置文件

  • 找到持久化卷对应的本地目录,进入yb-data/conf/路径
  • 编辑yugabyted.conf,将advertise_address的值改为新容器的IP,或直接设为0.0.0.0(允许绑定所有可用地址)
  • 重新启动容器

方法2:启动容器时指定参数覆盖配置

启动容器时,通过--advertise_address参数强制指定绑定地址,跳过旧配置的影响:

docker run -d -v /your/local/yb-data:/home/yugabyte/yb-data yugabytedb/yugabyte:latest yugabyted start --advertise_address=0.0.0.0

方法3:给容器分配固定IP

创建自定义Docker网络,给YugabyteDB容器分配固定IP,确保每次重启IP不变:

# 创建自定义子网网络
docker network create --subnet=172.28.0.0/16 yb-net
# 启动容器时指定固定IP
docker run -d --net yb-net --ip 172.28.0.3 -v /your/local/yb-data:/home/yugabyte/yb-data yugabytedb/yugabyte:latest

内容的提问来源于stack exchange,提问作者FranckPachot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:15:44