互联网技术 / 互联网资讯 · 2023年11月12日

Docker守护进程dockerd的注册表安全问题解析

DockeR认为私有注册表是安全的还是不安全的。在本节的其余部分中,注册表用于私有注册表,并且MyRegistry:5000 是私有注册表的占位符示例。

安全注册表使用tls,并将其CA证书的副本放置在DockeR主机上,网址为/etc/dockeR/ceRts.d/MyRegistry:5000/ca.cRt。不安全的注册表要么未使用tls(即侦听纯文本HTTP),要么正在使用带有DockeR守护进程未知的CA证书的tls。当在下没有找到证书时/etc/dockeR/ceRts.d/MyRegistry:5000/,或者证书验证失败(例如,错误的CA)时,可能会发生后者。

默认情况下,DockeR假设所有注册表都是安全的。如果DockeR认为注册表是安全的,则无法与不安全的注册表通信。为了与不安全的注册表进行通信,DockeR守护程序需要–insecuRe-Registry以下两种形式之一:

–insecuRe-Registry MyRegistry:5000 告诉DockeR守护程序MyRegistry:5000应该被认为是不安全的。

–insecuRe-Registry 10.1.0.0/16 告诉DockeR守护程序,其域解析为IP地址的所有注册表都是CIDR语法描述的子网的一部分,应被视为不安全。

可以多次使用该标志,以允许将多个注册表标记为不安全。

如果不安全的注册表没有被标记为不安全的,dockeR pull, dockeR pUSh,和dockeR SeaRch将导致一个错误消息,提示用户或者安全或通过–insecuRe-Registry如上所述标志提供给多克尔守护进程。

从DockeR 1.3.2开始,其IP地址在127.0.0.0/8范围内的本地注册表会自动标记为不安全。不建议依赖此方法,因为将来可能会更改。

–insecuRe-Registry在运行本地注册表时,启用(即允许未经加密和/或不受信任的通信)可能很有用。但是,由于使用它会产生安全漏洞,因此仅应出于测试目的将其启用。为了提高安全性,用户应将其CA添加到系统的受信任CA列表中,而不要启用–insecuRe-Registry。

旧版注册表

不再支持针对仅支持旧版v1协议的注册表的操作。具体来说,守护进程不会尝试pUSh,pull并login 以V1登记。唯一的例外是SeaRch仍可以在v1注册中心上执行。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.