问题描述
我一直在尝试创建一个 docker compose 文件来在 swarm 中的不同节点上运行服务。 VerneMQ 的想法是在一个集群内有一个主节点和 N 个(在我的例子中是 2)个副本。
这是目前我的 docker-compose.yml
version: "3.7"
services:
vmq0:
image: erlio/docker-vernemq
environment:
DOCKER_VERNEMQ_SWARM: 1
DOCKER_VERNEMQ_ACCEPT_EULA: "yes"
DOCKER_VERNEMQ_PLUGINS.vmq_passwd: 'off'
DOCKER_VERNEMQ_ALLOW_ANONYMOUS: 'on'
DOCKER_NET_INTERFACE: eth0
vmq:
image: erlio/docker-vernemq
depends_on:
- vmq0
environment:
DOCKER_VERNEMQ_SWARM: 1
DOCKER_VERNEMQ_disCOVERY_NODE: vmq0
DOCKER_VERNEMQ_ACCEPT_EULA: "yes"
DOCKER_VERNEMQ_PLUGINS.vmq_passwd: 'off'
DOCKER_VERNEMQ_ALLOW_ANONYMOUS: 'on'
DOCKER_NET_INTERFACE: eth1
ports:
- 50005:1883
- 8080:8080
deploy:
replicas: 2
我创建了群。
尝试部署堆栈:
docker stack deploy -c docker-compose.yml my-vernemq-stack
输出:
Ignoring deprecated options:.
Creating network my-vernemq-stack_default
Creating service my-vernemq-stack_vmq0
Creating service my-vernemq-stack_vmq
主节点输出(两个“从”节点都成功加入):
13:34:43.340 [info] successfully connected to cluster node 'VerneMQ@10.0.9.4'
13:34:43.454 [info] successfully connected to cluster node 'VerneMQ@10.0.9.3'
我试图获取容器的 IP:
docker inspect my-vernemq-stack_default | grep \"IPv4Address\"
输出:
{
"Name": "my-vernemq-stack_default","Id": "q5kd6opgjlqa7ujwmthnbtfna","Created": "2021-02-02T14:34:02.314934034+01:00","Scope": "swarm","Driver": "overlay","EnableIPv6": false,"IPAM": {
"Driver": "default","Options": null,"Config": [
{
"subnet": "10.0.9.0/24","Gateway": "10.0.9.1"
}
]
},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {
"Network": ""
},"ConfigOnly": false,"Containers": {
"0cb6e914e67c0e41599c8ddf75ce44929f643908a450159bfb2d2d9080a32de3": {
"Name": "my-vernemq-stack_vmq0.1.ynme6f8mtwqr4oxkw6zou95ui","EndpointID": "e335251e3177c96ac6f0376176bdb31b977f76ac1e7e3d1a8f18781dcbc67262","MacAddress": "02:42:0a:00:09:07","IPv4Address": "10.0.9.7/24","IPv6Address": ""
},"0ce3ce054697bf7d37ff3ba2294ce54ee10e0dd340dfe126c384ae63fc3169ec": {
"Name": "my-vernemq-stack_vmq.2.u9r8d59oqrojecrcpc7lf0v35","EndpointID": "a182ba573d9c63311c54a9d04386f6d041e8fcf1072dc4730c4896834f1935be","MacAddress": "02:42:0a:00:09:04","IPv4Address": "10.0.9.4/24","e856a33fd9d3d6fcac59faf80720bac0e041aa83e9a381e5d5691a5b400e659d": {
"Name": "my-vernemq-stack_vmq.1.qqjn9fxjui3mm4k6h9ktsw6vk","EndpointID": "6440fe5de53726324b8600327c891cfcf193bcc0595120e467671c572d2f9fe7","MacAddress": "02:42:0a:00:09:03","IPv4Address": "10.0.9.3/24","lb-my-vernemq-stack_default": {
"Name": "my-vernemq-stack_default-endpoint","EndpointID": "3c22cf723503a85ce4d668fd87fb40f876686e2ccb2e8ac9eb311a2f5648f9b1","MacAddress": "02:42:0a:00:09:05","IPv4Address": "10.0.9.5/24","IPv6Address": ""
}
},"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4105"
},"Labels": {
"com.docker.stack.namespace": "my-vernemq-stack"
},"Peers": [
{
"Name": "bb1480d58797","IP": "192.168.1.14"
}
]
}
这些是 IPv4 地址:
"IPv4Address": "10.0.9.7/24",
现在,我尝试使用 mosquitto 代理订阅任何节点:
sudo mosquitto_sub -h 10.0.9.7 -p 1883 -t Sample/Topic -d
但是没有任何反应。群内的一切都在工作,我可以使用“docker exec”连接到容器,但我无法发布或订阅代理(我没有得到任何回应)。我做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)