如何使用nodejs获取节点docker容器中的主机主目录路径?

Posted

技术标签:

【中文标题】如何使用nodejs获取节点docker容器中的主机主目录路径?【英文标题】:how to get the host home directory path in node docker container using nodejs? 【发布时间】:2020-05-26 20:06:19 【问题描述】:
const homedir = require('os').homedir();

当应用程序在主机上运行时,上面的代码段很容易给出当前主目录。 dockerizing 后,它返回“root”作为主目录,它应该是 docker 容器的主目录。如何从节点容器中获取当前主机主目录路径?

【问题讨论】:

你不能:Docker 的一个关键目标是主机文件系统和容器文件系统彼此隔离(它们的用户 ID 空间、网络命名空间和其他细节也是如此)。如果访问当前登录用户的主目录对您的应用程序很重要,那么 Docker 不是一个合适的打包机制。 @DavidMaze 我开发了一个区块链项目,它将凭证存储在主机文件系统中。之后,我使用 docker 开发了一个后端客户端。现在我需要将该凭据获取到 docker 容器。 【参考方案1】:

我什至无法想象您为什么需要这样的功能 :) 想象一下,您从公共存储库下载这样的图像并在自己的机器上运行它...

在任何情况下,您都可以通过docker run 将当前目录作为环境变量或内联参数传递给您的程序来实现这一点。因此,您必须在创建容器时将此信息显式传递给容器。

【讨论】:

以上是关于如何使用nodejs获取节点docker容器中的主机主目录路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 docker 容器中获取节点版本?

如何使用 NodeJs 连接到 docker compose 中的 postgres?

如何将两个NodeJS docker容器连接在一起?

docker-compose:nodejs容器不与postgres容器通信

如何从nodejs中的redis slave读取数据

如何在 docker 中从一个容器获取数据到另一个容器?我收到 ECONNREFUSED 错误