[英]Docker for Windows - Can not connect to the MongoDB on Ubuntu Container from Windows host
[英]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.