V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JRay
V2EX  ›  Docker

docker 怎么获取宿主主机硬件唯一标识?

  •  
  •   JRay · 2020-07-31 10:01:37 +08:00 · 4971 次点击
    这是一个创建于 1567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在网上就找到了一篇 https://blog.csdn.net/miapecloud/article/details/97106811

    但是在机器在重启之后就变了,想问下还有其他方法可以实现这个吗?

    目前想到可能实现的方案有在启动的时候先过去宿主机的唯一标识,然后再传递到 docker 里面使用。

    还有更加优雅的方案吗?

    10 条回复    2020-07-31 20:25:04 +08:00
    rushssss
        1
    rushssss  
       2020-07-31 10:13:36 +08:00
    获取尽可能多的不变的参数然后做 hash 来识别,例如 CPU 数量,硬盘大小,内存容量,udid 等等各种信息,放在一起 hash 以后当作唯一标识
    binux
        2
    binux  
       2020-07-31 10:15:50 +08:00 via Android
    说出你的真实需求
    JRay
        3
    JRay  
    OP
       2020-07-31 10:23:51 +08:00
    @rushssss 问题是怎么在 docker 容器里面获取宿主主机的
    JRay
        4
    JRay  
    OP
       2020-07-31 10:24:31 +08:00
    @binux 真实需求就是一个软件授权的功能,项目是 docker 部署,需要获取硬件唯一标识来生成授权码
    caryqy
        5
    caryqy  
       2020-07-31 10:37:30 +08:00
    镜像对于客户而言是个黑盒,从制作镜像时加自己的东西入手呢
    Jirajine
        6
    Jirajine  
       2020-07-31 10:53:14 +08:00 via Android
    docker 的意义就是在不同的主机上提供统一的环境。
    不妨改成环境变量传 key 然后联网鉴权。
    JRay
        7
    JRay  
    OP
       2020-07-31 11:21:20 +08:00
    @Jirajine
    @caryqy

    目前也就只想到这个方案了 用环境变量传进去
    nozer
        8
    nozer  
       2020-07-31 17:44:25 +08:00
    我最近遇到楼主一样的问题。

    我的解决方案是,在物理机上运行一个授权服务,此服务用来提取计算机的硬件特征且负责校验授权码,容器内部的服务和外部的授权服务器通过网络互联。

    运行在物理机上的服务要求同一时刻只能有一个客户端连接。

    其他方案:包括挂载配置文件、传递参数、环境变量这些都是没有办法避免容器内部的授权检验被(毫不费吹灰之力)欺骗的。


    另外:
    这个运行在物理机上的授权服务还可以做反容器检测,让他只能在容器外部运行。
    JRay
        9
    JRay  
    OP
       2020-07-31 17:54:44 +08:00
    @nozer 你那种实现方式确实也可以,就是感觉又的新开一个服务 ,我想到一个能不能直接挂载 /sys/class/dmi/id/product_uuid 这个目录到容器,这样的话容器获取的应该就是宿主唯一的标识了。
    boris93
        10
    boris93  
       2020-07-31 20:25:04 +08:00 via iPad
    @JRay #9 然后盗版玩家挂载一个别人分享出来的文件到容器里,你怎么知道?
    其实就是 #8 那句话,骗你跟玩似的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:40 · PVG 00:40 · LAX 08:40 · JFK 11:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.