团队博客
配置本地私有镜像仓库 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
查看状态