Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何将nodeJS docker容器连接到mongoDB大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有问题将作为docker容器运行的nodeJS应用程序连接到mongoDB.让我解释一下到目前为止我所做的事情:

$docker ps

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS        NAMES
3a3732cc1d90    mongo:3.4    "docker-entrypoint..."   3 weeks ago    Up 3 weeks    27017/tcp    mongo_live

如您所见,已经有@L_442_1@mongo docker容器正在运行.

现在我正在运行我的nodeJS应用程序docker容器(这是meteorJS的构建):

$docker run -it 0b422defbd59 /bin/bash

在这个docker容器中,我想运行以下命令来运行应用程序:

$node main.js

现在我收到了错误

Error: MONGO_URL must be set in environment

我已经尝试通过设置来设置MONGO_URL:

ENV MONGO_URL mongodb://mongo_live:27017/

但这不起作用:

@H_12_7@mongoError: Failed to connect to server [mongo_live:27017] on first connect

所以我的问题是如何连接到数据库,据我所知 – 在运行容器的“外部”.另外,如何为此容器设置新数据库

解决方法

有几种方法可以做到这一点.

>在与mongodb相同的网络中运行您的应用:

docker run --net container:mongo_live your_app_docker_image

# then you can use mongodb in your localhost
$ENV MONGO_URL mongodb://localhost:27017/

>您还可以链接两个容器:

docker run --link mongo_live:mongo_live you_app_image ..
# Now mongodb is accessible via mongo_live

>使用MongoDB容器ip地址:

docker inspect -f '{{.NetworkSetTings.Ipaddress}}' mongo_live
# you will get you container ip here

$docker run -it 0b422defbd59 /bin/bash
# ENV MONGO_URL mongodb://[ip from prevIoUs command]:27017/

>您可以将mongodb端口绑定到主机,并在应用程序中使用主机的主机名
>您可以使用docker network并在同一网络中运行这两个应用程序
>您可以传递–add-host mongo_live:< ip of mongo container>为您的应用程序运行docker,然后使用mongo_live为mongodb url
>您也可以使用docker compose让您的生活更轻松;)

大佬总结

以上是大佬教程为你收集整理的node.js – 如何将nodeJS docker容器连接到mongoDB全部内容,希望文章能够帮你解决node.js – 如何将nodeJS docker容器连接到mongoDB所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。