如何在没有 Docker 的情况下验证 Docker 登录?

时间:2021-04-03 09:01:07

标签: bash docker

我有一个脚本可以在干净的 Ubuntu 机器上运行并安装 Docker 以提取一些图像。但是,由于它在拉取之前需要 docker login 的容器注册表的用户名/密码,我想验证身份验证是否有效之前我继续安装 Docker,因此用户不会必须运行脚本两次,以防他们第一次弄错用户名/密码。

有没有办法在没有以某种方式安装 Docker 的情况下验证登录?脚本正在运行 干净的 Ubuntu 机器,所以我非常有限(仅限 Bash)。

2 个答案:

答案 0 :(得分:1)

假设您有登录名和密码/令牌,您可以试试这个:

USERNAME=john@example.com
PASSWORD=foobar
AUTH=$(echo "$USERNAME:$PASSWORD" | base64)
curl -XGET --fail -H "Authorization: Basic $AUTH" \ 
  https://my.docker.registry.com/v2/[read_below] \
  >/dev/null 2>&1 && echo success!

对于 [read_below],您有两个选项,选择一个适用于您的注册表:

  • repository_name/image_name/tags/list
  • _catalog

curl 将在除 200 之外的任何响应中以非零代码退出。

答案 1 :(得分:0)

您的脚本可能有一个文件,例如 environment.sh 变量,运行脚本的用户需要在运行脚本之前输入详细信息并保存,当脚本运行文件时首先加载变量以添加变量,这也只是 bash 会话的临时变量。当注册表需要用户名和密码时,您可以使用您的变量登录,然后继续执行脚本中的命令。