【发布时间】:2021-12-07 12:49:47
【问题描述】:
我在我的 Docker 容器中运行一个 Web 应用程序的实例,同时也在运行一个 MongoDB 容器,因此当我启动 Web 应用程序时,我可以轻松地在应用程序的连接页面上连接到数据库。
问题是我不确定如何从我的网络应用程序访问 Mongo 容器,也不确定我的主机/端口连接信息是否正确。
我的 Docker 设置
如您所见,容器已启动并运行,mongo 和 Web 应用程序服务都在正常运行
我通过docker-compose.yml构建这两个
version: "3.3"
services:
web:
image: grafana-asw-v3
container_name: grafana-asw-v3
restart: always
build: .
ports:
- "13000:3000"
volumes:
- grafana-storage:/var/lib/grafana
stdin_open: true
tty: true
db:
container_name: mongo
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
volumes:
- grafana-mongo-db:/var/lib/mongo
ports:
- "27018:27017"
volumes:
grafana-mongo-db: {}
grafana-storage: {}
问题
一切都启动并运行后,我尝试通过网络应用进行连接,但我似乎使用了错误的连接信息...
我假设使用“hostMachine:port”(roxane:27018),但它没有连接。这里有什么我忽略的吗?
【问题讨论】:
-
web容器是您的应用程序吗?您应该能够使用数据库 Compose 服务名称db和标准 MongoDB 端口 27017(ports:被完全忽略)。另请参阅 Docker 文档中的 Networking in Compose。
标签: node.js mongodb docker docker-compose