最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

docker,获取容器名称,而不是nodejs中的容器ID

IT培训 admin 11浏览 0评论

docker,获取容器名称,而不是nodejs中的容器ID

我已经在此url上看到了答案,但实际上它是在返回容器ID而不是容器名称。

来自URL的代码

const os = require('os');
console.log( os.hostname() ); 

在docker中,容器ID是一个长字符串,看起来像4e600c35e164...

而容器名称是实例customer赋予此机器的有意义的名称,这就是我试图在nodejs中获得的名称。

docker-compose

customerservice:
    image: node:10
    container_name: customer
    command: bash -c "npm install && npm install nodemon -g && nodemon --exec npm start"
    ports:
      - 3000:3000
回答如下:

[我认为您必须将主机的docker.sock文件绑定到容器中才能做到这一点,这允许您运行Docker命令或从容器内部联系Docker的API。例如,请参见this。请注意,它要求您在容器中安装docker,并且存在安全隐患。不是一个很好的选择。


另一种选择是使用environment中的environment键将环境变量简单地添加(并手动将其设置为所需的任何值。)>


最后,如果可以修改撰写文件,可以使用最新功能:模板化docker配置。这个想法是,配置是可以在容器中访问的文件。它可以被模板化,例如看起来像

docker-compose.yaml

将被您的容器的名称替换(尝试运行{{ .Name }} 以查看此docker container inspect <container_name>。您可以使用]创建一次此配置>

Name

然后在每个单个容器中使用它,方法是在撰写文件的根目录中添加一个指向外部配置的docker config create --template-driver golang <config_name> <path/to/file> 部分,并将其链接到您的容器(注意撰写文件的版本,我认为您需要[C0 ]至少):

configs:

不幸的是,您还不能从撰写文件中创建模板化配置(但是),但这并不是真正的问题。

docker,获取容器名称,而不是nodejs中的容器ID

我已经在此url上看到了答案,但实际上它是在返回容器ID而不是容器名称。

来自URL的代码

const os = require('os');
console.log( os.hostname() ); 

在docker中,容器ID是一个长字符串,看起来像4e600c35e164...

而容器名称是实例customer赋予此机器的有意义的名称,这就是我试图在nodejs中获得的名称。

docker-compose

customerservice:
    image: node:10
    container_name: customer
    command: bash -c "npm install && npm install nodemon -g && nodemon --exec npm start"
    ports:
      - 3000:3000
回答如下:

[我认为您必须将主机的docker.sock文件绑定到容器中才能做到这一点,这允许您运行Docker命令或从容器内部联系Docker的API。例如,请参见this。请注意,它要求您在容器中安装docker,并且存在安全隐患。不是一个很好的选择。


另一种选择是使用environment中的environment键将环境变量简单地添加(并手动将其设置为所需的任何值。)>


最后,如果可以修改撰写文件,可以使用最新功能:模板化docker配置。这个想法是,配置是可以在容器中访问的文件。它可以被模板化,例如看起来像

docker-compose.yaml

将被您的容器的名称替换(尝试运行{{ .Name }} 以查看此docker container inspect <container_name>。您可以使用]创建一次此配置>

Name

然后在每个单个容器中使用它,方法是在撰写文件的根目录中添加一个指向外部配置的docker config create --template-driver golang <config_name> <path/to/file> 部分,并将其链接到您的容器(注意撰写文件的版本,我认为您需要[C0 ]至少):

configs:

不幸的是,您还不能从撰写文件中创建模板化配置(但是),但这并不是真正的问题。

发布评论

评论列表 (0)

  1. 暂无评论