3.5. 配置短名称别名

红帽建议始终使用完全限定名称拉取镜像。但是,通常按短名称拉取镜像。例如,您可以使用 ubi9 而不是 registry.access.redhat.com/ubi9:latest

registries.conf 文件允许为短名称指定别名,使管理员能够完全控制从何处拉取镜像。别名在 [aliases] 表中指定,格式为 "name" = "value" 。您可以在 /etc/containers/registries.conf.d 目录中看到别名列表。红帽在此目录中提供了一组别名。例如,podman pull ubi9 直接解析为正确的镜像,即 registry.access.redhat.com/ubi9:latest

例如:

unqualified-search-registries=["registry.fedoraproject.org", “quay.io"]

[aliases]
"fedora"="registry.fedoraproject.org/fedora"

简短名称模式为:

  • enforcing:如果在镜像拉取过程中找不到匹配的别名,则 Podman 会提示用户选择一个非限定 registry。如果所选镜像拉取成功,Podman 将自动在 $HOME/.cache/containers/short-name-aliases.conf 文件(非 root 用户)或在 /var/cache/containers/short-name-aliases.conf (root 用户)中记录一个新的短名称别名。如果无法提示用户(例如,stdin 或 stdout 而不是 TTY),则 Podman 会失败。请注意,如果都指定了同一别名,short-name-aliases.conf 文件优先于 registries.conf 文件。
  • permissive:与 enforcing 模式类似,但如果用户无法提示,Podman 不会失败。相反,Podman 会按照指定顺序搜索所有非限定 registry。请注意,没有记录别名。
  • disabled:所有非限定 registry 都以给定顺序尝试,不记录别名。
注意

红帽建议使用完全限定镜像名称,包括注册中心、命名空间、镜像名称和标签。在使用短名称时,通常会存在欺骗风险。添加受信任的注册表,也就是不允许未知或匿名用户创建任意名称帐户的注册表。例如,用户希望从 example.registry.com registry 中拉取示例容器镜像。如果 example.registry.com 不是搜索列表中的第一个,则攻击者可以将不同的示例镜像放在搜索列表较前的注册中心中。用户会意外拉取并运行攻击者的镜像,而不是预期的内容。