我有一个脚本可以在干净的 Ubuntu 机器上运行并安装 Docker 以提取一些图像。但是,由于它在拉取之前需要 docker login
的容器注册表的用户名/密码,我想验证身份验证是否有效之前我继续安装 Docker,因此用户不会必须运行脚本两次,以防他们第一次弄错用户名/密码。
有没有办法在没有以某种方式安装 Docker 的情况下验证登录?脚本正在运行 干净的 Ubuntu 机器,所以我非常有限(仅限 Bash)。
答案 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 会话的临时变量。当注册表需要用户名和密码时,您可以使用您的变量登录,然后继续执行脚本中的命令。