【问题标题】:How to connect with database(mongodb in server 2) from docker container (running in server 1)如何从 docker 容器(在服务器 1 中运行)连接数据库(服务器 2 中的 mongodb)
【发布时间】:2021-05-08 20:28:47
【问题描述】:

服务器 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   

                                                                                                                                                                    

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow!您将需要在您的问题中添加更多信息,以便人们能够帮助您:单击“编辑”并添加更多关于正在发生的事情、您尝试过的内容(完整配置以及您的体验)的说明连接会很有用!)。此外,请尝试使用格式化功能使您的代码可读。
  • 您尝试从哪里连接到哪个主机和端口(哪个主机;是否在容器中)?

标签: docker docker-compose dockerfile docker-swarm


【解决方案1】:

Expose 指令不会改变任何内容,它仅用于文档。您可以在Dockerfile reference 中了解更多信息。

如果 2 台服务器在同一个 Docker 网络中,您可以在其安装配置中将 mongoDB 端口更改为 8000。然后,您无需在 docker-compose 配置中指定端口等。

如果你想从外部访问 mongoDB 服务,你必须将 docker-compose 配置更改为:

ports:
   - "8000:27017"

【讨论】:

    猜你喜欢
    • 2019-08-29
    • 1970-01-01
    • 2020-04-03
    • 2019-07-20
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 2020-09-28
    相关资源
    最近更新 更多