团队博客

配置本地私有镜像仓库 Harbor

张健  2023-10

一.Harbor 简介

Harbor 是由 VMware 开源的一款云原生制品仓库,Harbor 的核心功能是存储和管理 Artifact。Harbor 允许用户用命令行工具对容器镜像和其他 Artifact 进行推送和拉取,并提供了图形管理界面帮助用户查看和管理这些 Artifact。在 Harbor 2.0 版本中,除容器镜像外,Harbor 对符合 OCI 规范的 Helm Chart、CNAB、OPA Bundle 等都提供了更多的支持。

二.安装

下载工具以及依赖 环境 CentOS7.6

需要主机已经安装好 docker 环境

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum install python2-pip -y
[root@localhost ~]# yum -y install wget
[root@localhost ~]# wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
[root@localhost ~]# python get-pip.p
[root@localhost ~]# pip --version
pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 2.7)

安装 docker-compose

[root@localhost ~]# pip install docker-compose

解压 Harbor 安装包并进入该目录下(提前下载好安装包)

[root@localhost ~]# tar -xvf harbor-offline-installer-v2.4.2.tgz
[root@localhost ~]# cd harbor

备份文件修改配置文件

[root@localhost harbor]# cp harbor.yml harbor.yml.bak
[root@localhost harbor]# vim harbor.yml

修改 hostname 为:主机 ip

hostname:192.168.43.19

执行安装脚本

[root@localhost harbor]# ./prepare
[root@localhost harbor]# ./install.sh

访问仓库

初始化用户名密码为 admin Harbor12345

三.使用

修改仓库地址(docker 默认的仓库源为国外官方源)

[root@localhost harbor]# cd /etc/docker/
[root@localhost docker]# vim daemon.json
{
"insecure-registries":["192.168.43.19"]
}

重启 docker 服务

[root@localhost docker]# systemctl restart docker

标记镜像

[root@localhost harbor]# docker tag nginx:latest 192.168.43.19/project/nginx:v1

登录到本地私有仓库

[root@localhost ~]# docker login http://192.168.43.19

Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

上传镜像

[root@localhost ~]# docker push 192.168.43.19/project/nginx:v1

查看仓库

下载镜像

需要下载仓库镜像的成员也需要将仓库地址指向该仓库地址

[root@master03 ~]# cat /etc/docker/daemon.json
{
"insecure-registries":["192.168.43.19"],
"registry-mirrors": ["https://eh8ryox8.mirror.aliyuncs.com"](阿里云镜像加速,可以不配置)
}

登录到私有仓库

[root@master03 ~]# docker login http://192.168.43.19

下载仓库里的镜像

[root@master03 ~]# docker pull 192.168.43.19/project/nginx:v1
    v1: Pulling from project/nginx

    a2abf6c4d29d: Pull complete
    a9edb18cadd1: Pull complete
    589b7251471a: Pull complete
    186b1aaa4aa6: Pull complete
    b4df32aa5a72: Pull complete
    a0bcbecc962e: Pull complete
    Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3
    Status: Downloaded newer image for 192.168.43.19/project/nginx:v1
    192.168.43.19/project/nginx:v1
[root@master03 ~]# docker images
192.168.43.19/project/nginx v1 605c77e624dd 10 months ago 141MB
REPOSITORY TAG IMAGE ID CREATED SIZE

查看状态

需求调研到底要做什么