Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 仅将docker映像绑定到特定MAC地址_Linux_Unix_Docker_Containers - Fatal编程技术网

Linux 仅将docker映像绑定到特定MAC地址

Linux 仅将docker映像绑定到特定MAC地址,linux,unix,docker,containers,Linux,Unix,Docker,Containers,我是否可以创建一个docker映像,该映像可以在特定的Linux机器上实例化(绑定到特定的硬件MAC) 目标是避免人们在多台机器上使用docker映像。 或者USB加密加密狗适用于这种情况吗?据我所知,Docker没有提供现成的本机功能,但是: 您可以构建一个映像,其中: 需要一个环境变量Mac_host(意味着您必须使用docker run-e Mac_host 08002Bdeadb启动它,如“”中所建议) 作为其后台进程的一部分,将测试该环境变量值,如果该值与某个值不匹配(或者如果根本没

我是否可以创建一个docker映像,该映像可以在特定的Linux机器上实例化(绑定到特定的硬件MAC)

目标是避免人们在多台机器上使用docker映像。

或者USB加密加密狗适用于这种情况吗?

据我所知,Docker没有提供现成的本机功能,但是:

您可以构建一个映像,其中:

  • 需要一个环境变量
    Mac_host
    (意味着您必须使用
    docker run-e Mac_host 08002Bdeadb启动它,如“”中所建议)
  • 作为其后台进程的一部分,将测试该环境变量值,如果该值与某个值不匹配(或者如果根本没有设置环境变量),则立即退出
如前所述,MAC地址很容易被欺骗

但同样的过程也适用于不同的数据:图像可以通过嵌入的公钥验证的数字签名。见“”

用户必须传递消息、相同的加密消息以及有关如何验证签名的信息。
他/她只能使用正确的
私钥从机器上执行此操作。然后,图像可以在启动其主进程时执行解密操作,并将其输出与原始数据进行比较。如果不匹配。。。它将立即退出


其思想是:私钥是。。。私人:只有一台机器应该有它。这将确保映像只能在唯一的机器上运行。

尽管可能,检查MAC地址将很容易避免,例如,
docker run--MAC地址
允许人们覆盖容器的MAC地址。像这样的保护系统通常是坏的,所以我不确定是否有可能完全阻止人们运行多个实例。更好的替代方法是使用公钥检查由私钥签名的消息,该私钥只有一台机器拥有:允许运行映像的机器。签名消息将作为环境变量在docker运行时传递