如何解决如何在容器内获取docker系统ID?
据我了解,每个docker安装都有某种唯一的ID。我可以通过执行docker system info
来看到它:
$ docker system info
// ... a lot of output
ID: UJ6H:T6KC:YRIL:SIDL:5DUW:M66Y:L65K:FI2F:MUE4:75WX:BS3N:ASVK
// ... a lot of output
问题是是否有可能从容器中获取此ID(通过在容器中执行代码)而不映射任何卷等?
编辑: 只是为了澄清用例(基于评论):我们正在将遥测数据从Docker容器发送到我们的后端。我们需要确定哪些容器共享同一主机。这个ID可以帮助我们实现这一目标(这是机器ID)。如果还有其他方法可以识别主机,它也可以解决问题。
解决方法
否-除非您明确地将该信息注入到容器中(卷,COPY,环境变量,在构建时传递的ARG并保存在文件中等),或者例如通过GET
请求获取它,该信息在docker容器内不可用。
您可以在容器内打开一个控制台,并搜索包含该ID grep -rnw '/' -e 'the-ID'
的所有文件,但搜索将不匹配。
另一方面,从容器到主机的任何突破都将是真正的安全问题。
编辑以回答有关您的问题的最新信息:
泊坞窗主机可以查看正在运行的容器。更好的方法是从主机级别而不是容器级别发送所需的信息。
您仍然可以直接从容器发送数据并使用容器内部已知的容器ID,并将这些遥测信息与从docker主机发送的数据相关联。
还有另一个选择,我认为更好的是将遥测数据发送到容器的标准输出。可以轻松地从日志记录驱动程序收集此信息并将其发送到docker主机上的遥测后端。
,通常,容器的主机名是容器ID-不是您在说的ID,而是例如您将使用的ID。 docker container exec
,所以它是一个很好的标识符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。