要通过 Docker 使用嵌入式 Harbor 注册表中的容器映像,必须将注册表证书添加到 Docker 客户端。在登录期间,使用该证书向 Docker 进行身份验证。

将 Docker 客户端配置为与嵌入式 Harbor 注册表进行交互。要使用 vSphere 提供的 Docker Credential Helper 连接嵌入式 Harbor 注册表并与其进行交互,必须执行此任务。

前提条件

此任务假设您已启用嵌入式 Harbor 注册表,并假设您可以登录:

此外,说明还假设您使用的是安装了 Docker 守护进程的 Linux 主机 (Ubuntu)。要验证 Docker 是否已安装以及是否可以从 Docker hub 中提取映像,请运行以下命令:
docker run hello-world
预期结果:
Hello from Docker!
This message shows that your installation appears to be working correctly.
注: 已使用 Ubuntu 20.04 和 Docker 19.03 验证了这些说明。

过程

  1. 下载嵌入式 Harbor 注册表证书 root-certificate.txt。请参见下载并安装嵌入式 Harbor 注册表 证书
  2. 将证书的名称更改为 ca.crt
  3. ca.crt 文件安全地复制到 Docker 主机。
  4. 在 Docker 主机上,使用 Harbor IP 地址为专用注册表创建目录路径。
    /etc/docker/certs.d/IP-address-of-harbor/
    例如:
    mkdir /etc/docker/certs.d/10.179.145.77
  5. ca.crt 移动到此目录。
    例如:
     mv ca.crt /etc/docker/certs.d/10.179.145.77/ca.crt
  6. 重新启动 Docker 守护进程。
    sudo systemctl restart docker.service
  7. 使用 Docker 客户端登录嵌入式 Harbor 注册表。
    docker login https://10.179.145.77
    您可能会看到以下消息:
    WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    

下一步做什么

如消息所示,出于安全考虑,请下载并安装 vSphere Docker Credential Helper。请参见安装 vSphere Docker Credential Helper 并连接到注册表