要使用 Docker 在注册表中使用容器映像,请将注册表证书添加到 Docker 客户端。该证书用于在注册表登录期间对 Docker 进行身份验证。

将 Docker 客户端配置为与容器注册表(例如 Harbor 或 Docker Hub)进行交互。要使用 vSphere 提供的 Docker Credential Helper 连接注册表并与其进行交互,必须执行此任务。

前提条件

此任务假设您使用的是安装了 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
  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