gpt4 book ai didi

javascript - 使用端口转发运行容器时,无法从 node.js 代码获取 docker 容器的 IP 地址

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:55 25 4
gpt4 key购买 nike

我编写了一个基本的 node.js 代码来获取主机的 IP。代码如下所示:

var express = require('express');
var os = require('os');
var app = express();
var interfaces = os.networkInterfaces();


app.get('/',function(req,res){
var addresses = [];
for (var k in interfaces) {
for (var k2 in interfaces[k]) {
var address = interfaces[k][k2];
if (address.family === 'IPv4' && !address.internal) {
addresses.push(address.address);
}
}
}
res.send("IP address of container : " + addresses);
});

app.listen(3000);

当我在本地机器上运行这段代码时,我会得到正确的 IP

但是当我使用 Docker 文件容器化我的应用程序时:

FROM centos:7

MAINTAINER Vaibhav Jain <vaibhavjain882@gmail.com>

RUN yum -y install curl

RUN curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

RUN yum -y install nodejs

RUN mkdir "/ecsTest"
WORKDIR /ecsTest

ADD node_modules node_modules
ADD app.js package.json ./

CMD ["node","app.js"]

并使用端口转发运行容器我没有得到 IP

用于运行容器的命令:

docker run -d -p 3000:3000 image_name

感谢任何线索。谢谢

最佳答案

最后我找到了解决方案。我尝试了 IP npm 模块并使用了它的函数 address(),它对我来说工作正常。

关于javascript - 使用端口转发运行容器时,无法从 node.js 代码获取 docker 容器的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com