在 Nomad 中安全分发 Docker 凭据
Securely distributing Docker credentials in Nomad
我正在使用 Hashicorp Nomad 部署存储在注册表中的 Docker 图像,需要凭据才能访问。根据文档,我可以使用 auth
对象来指定用户名和密码,但是凭据必须在我不想要的清单文件中。例如,在 Kubernetes 注册表中,凭据可以存储在秘密中并与 imagePullSecrets
.
一起使用
如何使用注册表凭据而不必将它们存储在清单本身中(即 [=17= 中的环境变量、客户端上的环境变量、Vault 等秘密存储)?
如果我理解正确,您应该在每个能够 运行 Docker 容器的 Nomad 代理上单独执行 docker login
,或者复制 config.json
和授权令牌每台机器。
不过,要回答书面问题,假设您使用的工具知道如何处理变量,env-vars 会起作用。
Nomad 提供 native Vault integration。秘密将放置在应用程序的 /local
下,并且可以在容器的入口点脚本运行期间获取,以便环境变量可用。
或者,您可以使用 Nomad 规范的 templates
功能将 consul-template
字符串写入您的 Docker 守护程序的 config.json
我正在使用 Hashicorp Nomad 部署存储在注册表中的 Docker 图像,需要凭据才能访问。根据文档,我可以使用 auth
对象来指定用户名和密码,但是凭据必须在我不想要的清单文件中。例如,在 Kubernetes 注册表中,凭据可以存储在秘密中并与 imagePullSecrets
.
如何使用注册表凭据而不必将它们存储在清单本身中(即 [=17= 中的环境变量、客户端上的环境变量、Vault 等秘密存储)?
如果我理解正确,您应该在每个能够 运行 Docker 容器的 Nomad 代理上单独执行 docker login
,或者复制 config.json
和授权令牌每台机器。
不过,要回答书面问题,假设您使用的工具知道如何处理变量,env-vars 会起作用。
Nomad 提供 native Vault integration。秘密将放置在应用程序的 /local
下,并且可以在容器的入口点脚本运行期间获取,以便环境变量可用。
或者,您可以使用 Nomad 规范的 templates
功能将 consul-template
字符串写入您的 Docker 守护程序的 config.json