我在将作为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
如您所见,已经有一个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/
但这不起作用:
MongoError: failed to connect to server [mongo_live:27017] on first connect
所以我的问题是如何连接到数据库,据我所知,它是正在运行的容器的“外部”。或者,如何为该容器设置新的数据库?
有几种方法可以做到这一点。
在与mongodb相同的网络中运行您的应用程序:
docker run --net container:mongo_live your_app_docker_image
$ ENV MONGO_URL mongodb://localhost:27017/
您也可以链接两个容器:
docker run --link mongo_live:mongo_live you_app_image ..
使用mongodb容器的IP地址:
docker inspect -f '{{.NetworkSettings.IPAddress}}' mongo_live
$ docker run -it 0b422defbd59 /bin/bash
您可以将mongodb端口绑定到主机,并在应用程序中使用主机的主机名
您可以docker network
在同一网络中使用和运行两个应用程序
您可以传递--add-host mongo_live:<ip of mongo container>
给应用程序的docker run,然后mongo_live
用于mongodb url
您还可以使用docker compose使您的生活更轻松;)
…
我无法将作为docker容器运行的应用程序连接到mongoDB。我知道新版本docker compose不推荐使用“链接”,所以我尝试使用自定义网络。我的码头工人。yml: 我的应用程序的Dockerfile: 当我运行时,我在应用程序中得到以下错误消息: 在第一次连接时连接到服务器[127.0.0.1:27017]失败[MongoNetworkError:连接ECONNREFUSED127.0.
问题内容: 我正在使用docker- compose 运行一个应用程序。一切正常,通过连接到容器内的Mongo,我可以看到所有数据。但是,当我连接到RoboMongo时,我看不到任何数据。 我该如何解决这个问题? 问题答案: 您应该在Docker容器内建立到MongoDB的Robomongo SSH隧道连接。首先,您应该在docker容器中安装一个ssh服务器。 https://docs.dock
我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?
作为解决Hibernate OGM连接问题的一部分,我想看看我是否从Robo 3T连接。 我构建我的MongoDB映像并开始运行。 docker ps: MacBook-Pro:GoStopHandle NOTiFY$docker ps容器ID图像 命令创建状态端口名称0375a68b9988 goStop handlemongob:最新 "docker-entrypoint. s..."5秒前上
问题内容: 我正在练习制作一个与PostgreSQL数据库交互的Golang Web应用程序,每个应用程序都在各自的容器上运行。 我正在运行容器 但是我似乎无法正确设置postgres容器。 为简便起见,指向s和其他设置文件的链接位于此要点上(如果您需要在此处,请告诉我)。 工作良好。但是,当应用程序尝试使用以下方法打开数据库连接时: 我从docker compose得到以下错误: 如何使两个容器
我有一些docker conatiner,现在我想用ssh进入一个。我通过ssh连接到了docker容器。 但是现在我有一个问题,我不知道我可以用哪个用户访问这个容器? 我在主机(web)上的两个用户中都尝试过