docker容器中的Couchbase XDCR



我需要将本地的scouchbase群集并从我们的产品群集中复制数据,不能直接安装在OS X上(因为Vbuckets不兼容 - POD CLUST在Linux上)

docker进行救援。我已经设法创建了Dockerfile,您可以在这里看到它。

现在,群集运行,可以在LAN内部到达,所有必要的端口都在转发 - 我使用了此处描述的技巧

我在XDCR选项卡中成功创建了群集参考,但是每当我尝试复制Bucket的数据时 - 它将我的群集的主机名更改为某些非敏感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容器中运行群集?

群集不会接受您的节点作为其中的一部分,因此将其淘汰。似乎您没有正确设置网络。

可能是您需要更多的端口:(所有节点到节点端口)>

另外,您如何启动容器?将公开曝光在Dockerfile中不会打开端口,您还需要将-p放入命令中才能真正公开端口

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

127.0.0.1 couchbase_hostname

最新更新