Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb ubuntu docker容器与运行在windows本地主机上的mongdb连接_Mongodb_Docker_Ubuntu_Docker Container - Fatal编程技术网

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

Mongodb ubuntu docker容器与运行在windows本地主机上的mongdb连接,mongodb,docker,ubuntu,docker-container,Mongodb,Docker,Ubuntu,Docker Container,我提取了ubuntu映像并在我的windows上运行了容器。我想用ubuntu容器连接在windows上本地运行的MongoDB。实现这一目标的最佳实践是什么?您可以使用 默认情况下,Compose为应用程序设置单个网络。每个 服务的容器加入默认网络,并且是 可由该网络上的其他容器访问,并可由 它们的主机名与容器名称相同 让我们以MongoDB为例使用节点应用程序 您的docker compose文件docker compose.yaml 版本:“3” 服务: 应用程序: 图片:myapp:最新

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

您可以使用

默认情况下,Compose为应用程序设置单个网络。每个 服务的容器加入默认网络,并且是 可由该网络上的其他容器访问,并可由 它们的主机名与容器名称相同

让我们以MongoDB为例使用节点应用程序

您的docker compose文件docker compose.yaml

版本:“3”
服务:
应用程序:
图片:myapp:最新#你的应用程序docker图片
取决于:
-分贝
端口:
- 80:80
网络:
-网络
环境:
-MONGO_URL=mongodb://db:27017 #您可以在应用程序中使用MongoUrl进行连接
db:
图片:mongo:最新
卷数:
-/data/db:/data/db
端口:
- 27017:27017
网络:
-网络
网络:
网络:
司机:驾驶台
您可以连接节点中的环境变量,如下所示

从“猫鼬”导入猫鼬
const mongodbUrl=process.env.MONGO_URL
const mongoConnectionOptions={
useNewUrlParser:true,
useUnifiedTopology:正确,
游泳池规模:10,
bufferMaxEntries:0
}
猫鼬
.connect(mongodbUrl、mongoConnectionOptions)
。然后(异步(db)=>{
log(`Mongo db${db.version}已连接`)
})
.catch((错误)=>{
log(“MongoDB连接错误。请确保MongoDB正在运行。”+err)
})

然后使用
docker-compose-up
启动这两项服务

您尝试过docker-compose吗?先生,请详细告诉我我是初学者。发布了我的答案。如果有帮助,请告诉我