在 Docker 客户端中拉取和推送镜像
Harbor 可选地支持 HTTP 连接,但是 Docker 客户端始终尝试首先使用 HTTPS 连接到注册表。如果 Harbor 配置为 HTTP,则必须配置 Docker 客户端,使其可以连接到不安全的注册表。如果您的 Docker 客户端未配置为不安全的注册表,则在尝试拉取或推送镜像到 Harbor 时,将看到以下错误
Error response from daemon: Get https://myregistrydomain.com/v1/users/: dial tcp myregistrydomain.com:443 getsockopt: connection refused.
有关如何将不安全的注册表添加到 Docker 客户端的信息,请参阅通过 HTTP 连接到 Harbor。
如果 Harbor 使用带有未知 CA 证书的 HTTPS,您也会看到此错误。在这种情况下,请获取注册表的 CA 证书,并将其复制到 /etc/docker/certs.d/myregistrydomain.com/ca.crt
。
拉取镜像
如果镜像所属的项目是私有的,则必须先登录
docker login <harbor_address>
您现在可以拉取镜像了
docker pull <harbor_address>/library/ubuntu:14.04
推送镜像
在可以将镜像推送到 Harbor 之前,必须在 Harbor 界面中创建一个相应的项目。有关如何创建项目的信息,请参阅创建项目。
要将 Windows 镜像推送到 Harbor 实例,您还必须将 docker daemon 设置为 allow-nondistributable-artifacts
。有关更多信息,请参阅推送 Windows 镜像。
首先,从 Docker 客户端登录
docker login <harbor_address>
标记镜像
docker tag ubuntu:14.04 <harbor_address>/demo/ubuntu:14.04
推送镜像
docker push <harbor_address>/demo/ubuntu:14.04
推送 Windows 镜像
如果您计划将 Windows 镜像推送到 Harbor 实例,则必须配置 docker daemon 以允许推送受限的制品,方法是在 daemon.json
文件中设置 allow-nondistributable-artifacts
。
{
"allow-nondistributable-artifacts" : ["myregistrydomain.com:5000"]
}
有关 allow-nondistributable-artifacts
设置的更多信息,请参阅Docker 的文档。
向仓库添加描述
推送镜像后,项目管理员可以添加信息来描述仓库。
进入仓库并选择信息选项卡,然后单击编辑按钮。输入描述,然后单击保存以保存描述。

下载 Harbor 证书
用户可以单击注册表证书按钮来下载注册表证书。如果没有注册表证书按钮,请将服务器证书复制到目录 <your-data_volume>/ca_download/
并将其命名为 ca.cert
。

删除仓库
删除仓库涉及两个步骤。
首先,在 Harbor 界面中删除仓库。这是软删除。您可以删除整个仓库或仅删除其标签之一。软删除后,仓库不再由 Harbor 管理,但是,仓库文件仍保留在 Harbor 存储中。

接下来,通过在 Harbor 界面中运行垃圾回收来删除仓库文件。
在 Kubernetes 中从 Harbor 拉取镜像
Kubernetes 用户可以轻松地部署带有存储在 Harbor 中的镜像的 Pod。这些设置与任何其他私有注册表类似。有两点需要注意
- 当您的 Harbor 实例托管 HTTP 并且证书是自签名时,您必须修改集群中每个工作节点上的
daemon.json
。有关信息,请参阅https://docs.docker.net.cn/registry/insecure/#deploy-a-plain-http-registry。 - 如果您的 Pod 引用私有项目下的镜像,则必须使用有权从项目拉取镜像的用户的凭据创建一个 secret。有关信息,请参阅https://kubernetes.ac.cn/docs/tasks/configure-pod-container/pull-image-private-registry/。
在本页中
贡献