如何在 docker 容器中使用 ip

How to use ip in docker container

如果我在我的 nodejs 应用程序中为 mongo 数据库声明 IP 地址,如何创建 public 容器镜像:

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?

你应该看看 Kubernetes Services。 Pod 和其中的容器是短暂的。如link中所述:

While each Pod gets its own IP address, even those IP addresses cannot be relied upon to be stable over time.

另一方面,服务有稳定的IP地址。它们还允许使用相同 link.

中指定的环境变量和 DNS 进行发现