M.Y*_*efi 1 mongodb node.js meteor docker
A. 我有一个容器,其中包含以下
1.NodeJS版本 8.11.4
2.Rocketchat流星应用程序
B、这是我的 Dockerfile
FROM node:8.11.4
ADD . /app
RUN npm install -g node-gyp
RUN set -x \
&& cd /app/programs/server/ \
&& npm install \
&& npm cache clear --force
WORKDIR /app/
ENV PORT=3000 \
ROOT_URL=http://localhost:3000
EXPOSE 3000
CMD ["node", "main.js"]
Run Code Online (Sandbox Code Playgroud)
C、这条命令执行得很好
docker build -t memo:1.0 .
Run Code Online (Sandbox Code Playgroud)
当我尝试运行容器时,它在容器日志中遇到以下错误
{"log":"MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]\n","stream":"stderr","time":"2019-01-24T21:56:42.222722362Z"}
Run Code Online (Sandbox Code Playgroud)
所以容器不能被执行。在mongodb运行和我已经添加到0.0.0.0bindIp中mongod.conf的文件。
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
Run Code Online (Sandbox Code Playgroud)
My mongodbis installed in host(outside the container)
问题没有解决,我的容器状态是 Exited
我把IP而不是本地主机,但它遇到以下错误
{"log":"MongoNetworkError: failed to connect to server [192.168.0.198:27017] on first connect [MongoNetworkError: connect EHOSTUNREACH
Run Code Online (Sandbox Code Playgroud)
这里的问题是您正在启动一个 docker 容器(一个自包含的环境),然后尝试访问localhost:27017. 但是,容器内的 localhost 与容器外(主机上)的localhost 不同。从这一点可以采取两种方法:
localhost:27017,而是连接到主机的 ip(类似于 192.xxx 或 10.xxx) docker-compose.yml一个服务,其中一个服务是您的应用程序,另一个是 mongodb。| 归档时间: |
|
| 查看次数: |
8612 次 |
| 最近记录: |