Dockerhub的访问令牌

时间:2017-01-24 17:27:38

标签: authentication docker docker-registry concourse

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

我想要做的是使用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密码。

2 个答案:

答案 0 :(得分:8)

总之,你不能。有一些解决方案可能对您有吸引力,但它可能会让您放心,首先要知道这有一个结构性原因:

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

由于承载令牌通常在“不长”(即数小时或数天)之后超时,这对DockerHub令牌也是如此,因此每次构建运行时,汇总实例都需要能够从身份验证服务中获取新令牌如有必要。这需要某种形式的持久性身份验证才能存储在汇合服务器中,目前Dockerhub不支持CI访问令牌github

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

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

  • 您可以使用--load-vars-from保护您的凭据不被保存在管道中,将其存储在其他位置(LastPass,本地文件等)。
  • 您可以在Dockerhub上创建一个只能访问您想要推送的特定仓库的用户,如果愿意的话,可以访问“CI bot用户”。

答案 1 :(得分:4)

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

与Github个人访问令牌(PAT)相同

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