私有镜像仓库 Harbor 极简搭建指南(HTTP 版)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 私有镜像仓库 Harbor 极简搭建指南(HTTP 版)

本文简要介绍私有镜像仓库 Harbor 的搭建指南(HTTP 版),以及使用方法。搭建部分主要参考官网。本文基于以下版本:

Docker: 20.10.12  Docker-compose: 1.29.2  Harbor: 2.4.1


1.准备工作


1.1 安装 Docker 与 Docker Compose

请直接参考官网。这里仅给出在 CentOS 上的例子:

sudo yum install -y yum-utilssudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo systemctl enable docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose


1.2 安装 OpenSSL

这里仅给出 CentOS 的例子:


yum install -y openssl


2.安装 Harbor


官网给出了两种安装模式,在线安装包或离线安装包。其区别是离线安装包里面含有镜像,在线版本在安装时则去Docker Hub拉取镜像。我们这里使用离线安装包。

wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgztar zxvf harbor-offline-installer-v2.4.1.tgzcd harbor


harbor 文件夹里可以看到有一份文件 harbor.yml.tmpl,这是 Harbor 的配置信息,我们复制一份并进行修改(以下仅显示修改部分):


cp harbor.yml.tmpl harbor.yml

harbor.yml

# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.- hostname: reg.mydomain.com+ hostname: your.domain.com (自行指定)
# http related confighttp:  # port for http, default is 80. If https enabled, this port will redirect to https port  port: 80
# https related config# 直接禁用 HTTPS- https:+ # https:  # https port for harbor, default is 443- port: 443+ # port: 443  # The path of cert and key files for nginx- certificate: /your/certificate/path- private_key: /your/private/key/path+ # certificate: /your/certificate/path+ # private_key: /your/private/key/path
# # Uncomment following will enable tls communication between all harbor components# internal_tls:#   # set enabled to true means internal tls is enabled#   enabled: true#   # put your cert and key files on dir#   dir: /etc/harbor/tls/internal
# Uncomment external_url if you want to enable external proxy# And when it enabled the hostname will no longer used# external_url: https://reg.mydomain.com:8433
# The initial password of Harbor admin# It only works in first time to install harbor# Remember Change the admin password from UI after launching Harbor.- harbor_admin_password: Harbor12345+ harbor_admin_password: yourPassword (自行指定)

修改完毕后,直接运行 ./install.sh,并等待 Docker Compose 执行完毕。部署完毕后,你就可以使用这台机器的 80 端口看到 Harbor 界面了。如果需要启动 Helm Chart 的管理功能,请使用 ./install.sh --with-chartmuseum。


3.登录与使用方法


在安装 Harbor 的本机,可以直接在 /etc/hosts 里配置,在 127.0.0.1 后面加上你在配置文件里定义的 hostname,随后可以使用如下命令直接登录:


docker login -u admin -p yourPassword http://your.domain.com

上面的密码与 hostname 需要自行替换。


如果在其他机器登录,首先还是需要配 /etc/hosts,将 hostname 指向安装 Harbor 的机器 IP。登录时,可能会遇到如下情况:


$ docker login -u admin -p yourPassword http://your.domain.com
Error response from daemon: Get https://your.domain.com/v2/: dial tcp xxx.xxx.xxx.xxx:443: connect: connection refused

这个原因是访问 HTTPS 被拒绝(我们只配置了 HTTP),需要关闭安全验证。修改 /etc/docker/daemon.json 并加入如下内容:

/etc/docker/daemon.json


+ "insecure-registries": ["your.domain.com:port", "0.0.0.0"]

如果是 80 端口号则可以忽略端口部分。修改完毕后,重启 Docker:


sudo systemctl restart docker

必要时,可以在安装 Harbor 的机器上重启 Harbor:


cd harbordocker-compose down -vdocker-compose up -d

再次登录即可正常使用。需要注意,使用 Harbor 时,镜像需要遵循以下:

# Dockerdocker tag SOURCE_IMAGE[:TAG] your.domain.com/PROJECT_NAME/REPOSITORY[:TAG]docker push your.domain.com/PROJECT_NAME/REPOSITORY[:TAG]docker pull your.domain.com/PROJECT_NAME/REPOSITORY[:TAG]
# Helmhelm repo add --username admin --password ADMIN_PASSWORD harbor http://your.domain.com/chartrepo/helm plugin install https://github.com/chartmuseum/helm-pushhelm cm-push CHART_PATH --version="CHART_VERSION" harborhelm repo updatehelm search repo CHART_PATHhelm install RELEASE_NAME CHART_NAME

其中 PROJECT_NAME 是你在 Harbor UI 新建的项目名,CHART_PATH 是存储 Helm Chart 的路径,CHART_NAME 是使用 helm search 后搜索到的 Chart 名称,RELEASE_NAME 是 Helm 部署后的自定义名称。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Docker 容器
企业实战(6)修改Harbor镜像仓库默认存储路径
企业实战(6)修改Harbor镜像仓库默认存储路径
281 0
|
安全 应用服务中间件 数据安全/隐私保护
企业实战(5) Docker私有镜像仓库Harbor的部署与使用详解
企业实战(5) Docker私有镜像仓库Harbor的部署与使用详解
471 0
|
网络虚拟化 Docker 容器
本地docker不能登录远程harbor服务器,error response from daemon,error parsing http 403 response body
本地docker不能登录远程harbor服务器,error response from daemon,error parsing http 403 response body
297 0
本地docker不能登录远程harbor服务器,error response from daemon,error parsing http 403 response body
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
990 0
|
24天前
|
Kubernetes Ubuntu NoSQL
harbor镜像仓库自建
harbor镜像仓库自建
|
4月前
|
数据可视化 Linux 数据安全/隐私保护
Harbor私有镜像仓库搭建
Harbor私有镜像仓库搭建
60 3
|
3月前
|
Docker 容器
docker: 搭建 harbor 镜像仓库
docker: 搭建 harbor 镜像仓库
|
6月前
|
存储 API 数据安全/隐私保护
企业级Docker镜像仓库Harbor部署与使用
企业级Docker镜像仓库Harbor部署与使用
|
6月前
|
存储 安全 数据库
搭建Harbor镜像仓库
搭建Harbor镜像仓库
306 2
|
6月前
|
JavaScript Devops Java
DevOps搭建(一)-安装Harbor镜像仓库详细步骤
DevOps搭建(一)-安装Harbor镜像仓库详细步骤
100 0