docker - 如何从 docker 容器(在服务器 1 中运行)连接数据库(服务器 2 中的 mongodb)
问题描述
服务器 1->10.0.0.47 服务器 2->10.0.1.202
这两个服务器之间的所有端口都是开放的,因为它们在 aws 中位于同一个 VPN 中
版本:'3.3'
networks:
net:
external: true
services:
backend:
image: test/test-backend:prod
ports:
- "8000:8000"
depends_on:
- discovery
错误:连接被拒绝注意当我尝试更改作曲家时,如下所示与 mongo 建立连接但无法访问端口 8000 上的服务
networks:
net:
external: true
services:
backend:
image: test/test-backend:prod
expose:
- "27017:27017"
ports:
- "8000:8000"
depends_on:
- discovery
解决方案
Expose 指令不会改变任何东西,它仅用于文档。您可以在Dockerfile 参考中了解更多信息。
如果 2 服务器在同一个 Docker 网络中,您可以在其安装配置中将 mongoDB 端口更改为 8000。然后,您不需要在 docker-compose 配置中指定端口等。
如果要从外部访问 mongoDB 服务,则必须将 docker-compose 配置更改为:
ports:
- "8000:27017"
推荐阅读
- python - 如何使用循环来避免对数组中的每个索引重复相同的操作?
- mongodb - 在 Express 和 Mongo 中需要帮助子路由
- tableau-api - Tableau:如何按每个类别过滤具有(其中一个)最大值的行
- xaml - 是否有 XAML 格式化程序来替换结束标记的需要?
- python - scipy.spatial.Delaunay 难以找到给定点的所有邻居
- rabbitmq - 在 Rabbitmq 客户端库中修复 CWE ID 117
- python - 如何从 Google Cloud Functions 读取存储在 Google Cloud Storage 上的非文本文件
- javascript - 无法用 Firestore 数据填充数组
- preact - Preact Router 不替换历史记录
- typescript - 使用 instanceof 检查某个变量是否是打字稿中的类构造函数类型?