docker - 在多个ec2节点上设置zookeeper集群时0.0.0.0是什么意思
问题描述
我在为超级账本结构订购者设置 Zookeeper集群时遇到了困难。通过 docker zookeeper 用户论坛 [ https://forums.docker.com/t/cannot-get-zookeeper-to-work-running-in-docker-using-swarm-mode/27109],它说我必须使用0.0 .0.0作为服务器的主机。
我不明白为什么 127.0.0.1 或 localhost 不起作用。此外,如果0.0.0.0用作子网掩码,则 255.255.255.0 或 0.0.0.1 也不起作用。
那么docker zookeeper上的0.0.0.0对于宿主机上的服务器来说是什么意思。
version: '2'
services:
zk-1:
extends:
file: docker-compose-zkbase.yml # common setting for zookeepers
service: zookeeper
container_name: zk-1
hostname: zk-1
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=0.0.0.0:2888:3888 server.2=13.125.46.185:2888:3888 server.3=54.180.152.130:2888:3888
最后 0.0.0.0 对我来说是好的,但是我还是不明白 0.0.0.0 对于 docker zookeeper 的确切含义。
解决方案
这就是关于网络的全部内容。当您“打开”一个套接字时,这意味着您创建了任何类型的 tcp/udp 服务器,您bind
将套接字连接到本地 PC 上的某个接口。
这意味着你告诉你的服务器只接受来自指定接口的连接。例如,您可能有多个板载以太网卡,并且您希望您的 Web 服务器仅在特定的一个上可用。
为了实现你bind
的服务器到那个接口,指定IP地址。
同时似乎还有一些特殊的价值,它们是:
0.0.0.0
- 表示您的服务可以在所有界面上访问。您可以从本地计算机和连接到任何以太网适配器的任何 PC 进行连接。
localhost/127.0.0.1
- 表示您在本地打开您的服务。这使您的服务仅可用于来自本地 PC 的连接。不接受外部连接。出于安全原因,此选项很有价值。它通常用于反向代理架构中,当不安全(http
)连接在本地打开并且安全(https
)时 - 在0.0.0.0
绑定时nginx
作为反向代理促进者。
推荐阅读
- python - 由多个图像组成的保存图变成空白
- c# - C# JsonConvert 捕获数据到对象错误
- android - 通过 NodeJS Express 发送 epub 文件
- flutter - 在 Flutter 中将令牌附加到 HLS 视频请求的末尾
- twilio - Twilio:在忙信号时拨号故障转移
- r - 使用survminer(ggsurvplot)将Kaplan-Meier图y轴更改为失败概率而不是生存概率?
- amazon-web-services - 如何在不使用 AWS 53 端点域或任何其他域的 ssl 的情况下使用多容器 docker 在 elasticbeanstalk 中启用 https?
- go - 如何在 gRPC 原型文件中创建关联?
- asp.net - 获取 Blazor 中特定单元格上的同步融合计划数据
- r - 尝试在 MacOS Catalina 版本 10.15.4 上将“tidyverse”安装到 RStudio 时出错