azure - 在 docker swarm 模式下不暴露端口
问题描述
我正在尝试使用 docker swarm 设置非常简单的服务,但我遇到了暴露端口的问题。
我有两台机器,让它们命名为 xxx 和 yyy。当我做简单的
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
他们都工作正常,我可以去 xxx:9200 有 Elasticsearch 的实例
我尝试对 swarm 模式做同样的事情,所以在 xxx 机器上我做了:
docker swarm init --advertise-addr [external IP of xxx machine]
我得到了正确的令牌,我成功地将 yyy 机器加入了 swarm。然后我使用创建了新的覆盖网络
docker network create -d overlay dockerdemo
并使用在这个群中创建服务
docker service create --name swarmelasticsearch --network dockerdemo --replicas 2 -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
服务已成功创建,两台机器都运行着带有 Elasticsearch 的容器,但我无法从外部访问它们。当我转到 xxx:9200 或 yyy:9200 或 port-of-xxx:9200 时,什么也没有发生。我无法访问我的网站。为什么?我还需要做些什么吗?我的两台机器都在带有 Ubuntu + 最新 docker 的 Azure VM 上。
解决方案
推荐阅读
- django - 如何仅允许条目的作者在 UpdateView 逻辑中对其进行编辑
- pact - 契约经纪人:无法在 http://localhost:8080/ 中看到契约经纪人屏幕
- php - 如何使用 PHP 将 UNIX 时间戳插入 Oracle 数据库
- python - 重新分片许多大的 csv 文件以使每个分片具有相同的行数
- nestjs - NestJS:Graphql Resolver 查询不注入复杂类型,它是空的
- sql - 如何生成字段等于“Dayofweek”、“weekofyear”等的日期表;并且行等于从 2010-01-01 到 current_date 的日期
- php - 如果我想在 PHP 中将一个单词移动到数组的末尾,如何使用函数?
- html - 在背景上水平和垂直居中 DIV
- java - VSCode中如何修复Java文件版本和编译版本不同
- powerbi - 使用 PowerBI 跟踪自定义策略注册/登录到 AD B2C