首页 > 解决方案 > 如何在 docker 容器中使用 ip

问题描述

如果我在我的 nodejs 应用程序中为 mongo db 声明 IP 地址,如何创建公共容器映像,例如:

const client = mongoose.connect("mongodb://192.168.99.100:27017/db", ...
  1. 我是否需要使用 public-ip 之类的库来获取地址:
const publicIp = require('public-ip');

(async () => {
    console.log(await publicIp.v4());
    //=> '46.5.21.123'

    console.log(await publicIp.v6());
    //=> 'fe80::200:f8ff:fe21:67cf'
})();
  1. 我是否必须从顶部知道容器将使用哪些地址?

  2. 或者有一些方法,例如,如果容器在一个 pod 上运行,它们共享相同的内部本地地址 127.0.0.1?

标签: node.jsmongodbdockerkubernetesminikube

解决方案


你应该看看 Kubernetes服务。Pod 和其中的容器是短暂的。如链接中所述:

虽然每个 Pod 都有自己的 IP 地址,但即使是这些 IP 地址也不能随着时间的推移而保持稳定。

另一方面,服务具有稳定的 IP 地址。它们还允许使用在同一链接中指定的环境变量和 DNS 进行发现。


推荐阅读