Dockerhub 的访问令牌

Access Token for Dockerhub

我在 hub.docker.com 上创建了一个存储库,现在想使用我的凭据将我的图像推送到 Dockerhub。我想知道我是否必须使用我的用户名和密码,或者我是否可以创建某种访问令牌来推送 docker 图片。

我想做的是使用 Concourse 中的 docker-image 资源将图像推送到 Dockerhub。因此我必须配置凭证,如:

type: docker-image
source:
  email: {{docker-hub-email}}
  username: {{docker-hub-username}}
  password: {{docker-hub-password}}
  repository: {{docker-hub-image-dummy-resource}}

而且我不想为此使用我的 Dockerhub 密码。

简而言之,你不能。有一些解决方案可能对您有吸引力,但首先了解其中的结构性原因可能会让您放心:

资源是通过它们的 sourceparams 配置的,它们是在管道级别(在您的 yml 文件中)定义的。任何身份验证信息都必须在那里定义,因为无法从构建的早期步骤中获取信息到 get 步骤(它没有输入)。

由于不记名令牌通常在 "not that long"(即几小时或几天)后超时,这对于 DockerHub 令牌也是如此,每次 concourse 实例都需要能够从身份验证服务获取新令牌如有必要,构建运行。无论如何,这需要某种形式的持久身份验证存储在大厅服务器中,目前 Dockerhub 不支持 CI 访问令牌 github.

也就是说,您需要以某种方式向 Concourse 提供用户名和密码。

如果您担心安全问题,最有可能采取一些措施来降低风险:

  • 您可以使用 --load-vars-from 来保护您的凭据不被保存在您的管道中,将它们存储在其他地方(LastPass、本地文件等)。
  • 您可以在 Dockerhub 上创建一个用户,该用户只能访问您要推送的特定存储库,如果您愿意,可以创建一个 "CI bot user"。

Docker Hub 支持访问令牌
转到 Account Settings > Security

它与 Github 个人访问令牌 (PAT)

相同

您可以使用此令牌代替实际密码