【发布时间】:2020-12-08 10:54:42
【问题描述】:
我在一个名称为 favorites-net 的 docker 中创建了一个网络,以及两个名称如下的容器:-
1)。 mongodb(来自 docker hub mongodb 的正常运行映像)。
2)。收藏夹(有简单的 nodejs 项目尝试连接 mongodb 数据库)
我用过的连接代码
mongoose.connect(
// 'mongodb://localhost:27017/swfavorites', ###Working Properly by using this###
'mongodb://mongodb:27017/swfavorites', ### Not Working by using this###
{ useNewUrlParser: true },
(err) => {
if (err) {
console.log(err);
} else {
app.listen(3000);
}
}
);
Dockerfile
FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "app.js"]
常用来构建图像
docker build -t favorites-node .
用于运行 Node Js 容器的命令
docker run --name favorites --network favorites-net -d -p
3000:3000 favorites-node
MongoDB Container 处于运行状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56aeba0a7f2f mongo "docker-entrypoint.s…" 55 minutes ago Up 14 seconds 27017/tcp mongodb
检查docker logs favorites时出错
MongoNetworkError: failed to connect to server [mongodb:27017] on first connect [Error: getaddrinfo ENOTFOUND mongodb
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:67:26) {
name: 'MongoNetworkError'
}]
at Pool.<anonymous> (/app/node_modules/mongodb/lib/core/topologies/server.js:438:11)
at Pool.emit (node:events:376:20)
at /app/node_modules/mongodb/lib/core/connection/pool.js:562:14
at /app/node_modules/mongodb/lib/core/connection/pool.js:995:11
at /app/node_modules/mongodb/lib/core/connection/connect.js:32:7
at callback (/app/node_modules/mongodb/lib/core/connection/connect.js:280:5)
at Socket.<anonymous> (/app/node_modules/mongodb/lib/core/connection/connect.js:310:7)
at Object.onceWrapper (node:events:483:26)
at Socket.emit (node:events:376:20)
at emitErrorNT (node:internal/streams/destroy:188:8)
at emitErrorCloseNT (node:internal/streams/destroy:153:3)
at processTicksAndRejections (node:internal/process/task_queues:80:21)
【问题讨论】:
-
请不要使用截图显示代码
-
@Anatoly 抱歉,我已删除屏幕截图并重新格式化。你能建议我如何解决这个问题吗?
-
如果可能,来自终端的错误也应该是文本。请显示描述这两个容器的两个 docker 文件。你不使用 docker-compose 吗?
-
我还添加了来自终端获取和上面所有其他文件的错误。
-
好的,谢谢,我的 MongoDB 解决问题与我的 nodejs 容器在 docker 中运行的网络不同,现在它工作正常
标签: node.js mongodb docker dockerfile