繁体   English   中英

ubuntu docker 容器与在 windows 的本地主机上运行的 mongdb 连接

[英]ubuntu docker container connect with mongdb running on localhost in windows

我提取了 ubuntu 映像并在我的 windows 上运行容器。 我想将在 windows 上本地运行的 MongoDB 与 ubuntu 容器连接起来。 实现这一目标的最佳做法是什么?

您可以使用docker-compose 网络

默认情况下,Compose 会为您的应用程序设置一个网络。 服务的每个容器都加入默认网络,并且可以被该网络上的其他容器访问,并且可以通过与容器名称相同的主机名被它们发现。

例如,让我们使用带有 MongoDB 的 Node 应用程序。

你的 docker-compose 文件Docker compose.yaml

version: "3"
services:
  app:
    image: myapp:latest # your app docker image
    depends_on:
      - db
    ports:
      - 80:80
    networks:
      - network
    environment:
      - MONGO_URL=mongodb://db:27017 #MongoUrl you can use in your app to connect
  db:
    image: mongo:latest
   volumes:
      - /data/db:/data/db
    ports:
      - 27017:27017
    networks:
      - network
networks:
  network:
    driver: bridge

您可以连接 Node 中的环境变量,如下所示

import mongoose from "mongoose"
const mongodbUrl = process.env.MONGO_URL
const mongoConnectionOptions = {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  poolSize: 10,
  bufferMaxEntries: 0
}
mongoose
  .connect(mongodbUrl, mongoConnectionOptions)
  .then(async (db) => {
    console.log(`Mongo db ${db.version} is connected`)
  })
  .catch((err) => {
    console.log("MongoDB connection error. Please make sure MongoDB is running. " + err)
  })

然后使用docker-compose up启动这2个服务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM