docker - 如何在 Docker Swarm 中设置专用网络?
问题描述
我正在研究如何正确设置 docker swarm 基础设施,但有一个问题我还没有找到答案。
假设,在这个基本场景中,我有 2 个服务:
- API:一个 Rest API 服务
- DB:数据库服务。
┌────────┐
│ WWW │
└────────┘
▲
│
Swarm │
┌────────┼──────────────────────────┐
│ │ │
│ ┌─────▼──────┐ ┌───────────┐ │
│ │ │ │ │ │
│ │ API │◄──►│ DB │ │
│ │ │ │ │ │
│ └────────────┘ └───────────┘ │
│ │
└───────────────────────────────────┘
出于安全目的,我不希望 DB 服务公开可用。我只希望 Docker Swarm 内的服务可以访问它,理想情况下我只希望它可用于 API 服务。
我试图设置一个桥接网络(在 docker-compose 文件中),但是在使用docker stack deploy
docker 时抱怨它:“网络......不能与服务一起使用。只能使用范围为 swarm 的网络,例如那些使用覆盖驱动程序创建。 "。
所以,总结一下,我的问题是:
- 我如何设置网络以使服务成为群专用的?
谢谢!
解决方案
尝试以这种方式创建网络:
docker network create -d overlay my-network
并仅发布 API 服务端口以使其可从外部访问
推荐阅读
- python - Python:用单词列表替换句子中的一个单词并将新句子放在熊猫的另一列中
- python - 基于另一列条件的 dask 滚动总和
- spring - VueJs从spring boot中下载图片并显示在
- system-calls - XV6 - 将参数传递给系统调用并获取返回值
- ifttt - IFTTT 端点测试在设置时给了我以下错误
- wpf - 如何在 WPF 中的每个网格行上设置不同的工具提示?
- nginx - 当另一个站点重定向到我的 Ionic 网站时,Nginx 405 不允许
- android - 有没有办法在 Android savedInstanceState Bundle 中使用 Kotlinx 序列化?
- javascript - 想推数据到数组,但是新数据替换了旧数据
- vba - 使用“\\?\”前缀打开具有长路径的 Word 文档会导致 Nothing