使用docker部署node服务项目,服务中使用ip获取address是docker的IP地址,如何获取宿主机的IP地址
时间: 2024-04-10 13:33:45 浏览: 71
kubeadm部署多master节点高可用k8s1.16.2(centos7)1
在容器内部,可以通过访问特殊的 DNS 名称 `host.docker.internal` 来获取宿主机的 IP 地址。这个 DNS 名称在 Docker 18.03 版本及更高版本中可用。
您可以使用以下代码来获取宿主机的 IP 地址:
```javascript
const os = require('os');
// 获取宿主机的 IP 地址
const getHostIpAddress = () => {
const networkInterfaces = os.networkInterfaces();
for (const interfaceName in networkInterfaces) {
const interfaces = networkInterfaces[interfaceName];
for (const iface of interfaces) {
if (iface.family === 'IPv4' && !iface.internal) {
return iface.address;
}
}
}
};
const hostIpAddress = getHostIpAddress();
console.log('宿主机IP地址:', hostIpAddress);
```
当您在容器中运行这段代码时,`host.docker.internal` 将被解析为宿主机的 IP 地址。请注意,这种方法仅适用于在 Docker 容器中运行的应用程序,而不适用于在宿主机上直接运行的应用程序。
阅读全文