docker - 不能同时在一个 swarm 中使用多个 docker 网络
问题描述
我用 2 个覆盖网络(后端和前端)制作了一个 docker swarm,我有两个 swarm 服务,一个连接到后端网络,另一个连接到前端。
两者都是在不同端口 80 和 5001 上运行的 Web 应用程序。
如果我这样做,curl localhost:80
或者curl localhost:5001
它们都可以正常工作,但是如果我尝试通过具有外部 IP 的浏览器访问它们,那么只有我之前运行的服务才能工作。
即,如果我这样做docker service create -p 80:80 frontend
,然后docker service create -p 5001:80 backend
只有前端与外部 ip 一起工作,另一个只在内部工作,反之亦然,如果我先启动后端,只有这样才能工作......
为什么会发生这种情况,我该如何防止它?
其他可能是相关细节:
在 Ubuntu 机器上的 google cloud 上运行 swarm。
解决方案
推荐阅读
- javascript - 带箭头的 React-router 页面
- python - 考虑到互斥项目,如何返回打乱列表?
- java - 创建对象时是否需要为两个菱形运算符指定数据类型?
- javascript - 如何使用 javascript 获取 css 变量名(键)
- r - 如何将 igraph 对象转换和配置为 JSON
- javascript - 清除 Javascript 中等效的站点数据?
- json - Facebook Graph API - 所有帐户页面 + 帖子数据
- javascript - 如何在页面刷新或页面更改时删除本地存储密钥?
- amazon-web-services - 手动触发 AWS 代码管道,而不是使用 bitbucket codestar 连接在每次提交时触发
- clojure - 在 clojure 的长函数中创建新变量