7

我需要有本地 Couchbase 集群并将我们的 prod 集群中的数据复制到它上面,不能将它直接安装在 OS X 上(因为 vbuckets 不兼容 - prod 集群在 linux 上)

用于救援的 Docker。我已经成功创建了 Dockerfile, 你可以在这里看到。

现在,集群运行,它可以在 LAN 内访问,所有必要的端口都在转发 -我使用了这里描述的技巧

我在 XDCR 选项卡中成功创建了集群引用,但是每当我尝试复制存储桶的数据时 - 它会将我的集群的主机名更改为一些无意义的 IP 地址并创建一个日志条目:

Updated remote cluster `mycluster` hostname to "172.17.0.5:8091" 
because old one ("mylaptop.company.com:8091") 
is not part of the cluster anymore

我知道 Couchbase 对 IP 地址非常敏感,如您所见,我使用的是我的机器的主机名(docker 容器的主机)。我尝试使用 更改容器的主机名docker run -h,但这似乎没有帮助。

任何人,你们是否将 XDCR 设置为在 docker 容器中运行的集群?

4

2 回答 2

1

集群不会接受你的节点作为它的一部分,所以它会被淘汰。看来您的网络设置不正确。

可能是您需要打开更多端口:(所有节点到节点端口)http://docs.couchbase.com/couchbase-manual-2.5/cb-install/#network-ports

另外,你如何启动你的容器?将暴露在 dockerfile 中不会打开端口,您还需要在命令中放入 -P 才能真正暴露端口

于 2015-05-31T20:45:19.260 回答
1

我最终弄清楚了这一点。第一步是将您的 couchbase 主机名设置为可从主集群访问的内容。您要做的第二件事是更新从集群上的主机文件,将当前的 127.0.0.1 定义替换为 COUCHBASE_HOSTNAME 是上面使用的主机名,我无法使用公共 IP 地址,并且必须使用域名带有指向从站的 DNS 记录:

127.0.0.1 COUCHBASE_HOSTNAME

于 2016-10-03T14:32:47.983 回答