部署Harbor容器仓库,给镜像文件一个家

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 部署Harbor容器仓库,给镜像文件一个家

早在之前已经总结过Harbor私有仓库的部署,但在实际操作中一不小心又会踩到坑中,导致登录失败,因此在原来的基础上再次总结一下,避免走老路(说的就是……我,今天又踩了几个坑)。

我这里依然采用离线部署的方式,在部署前需要安装docker运行时环境和docker-compose的支持,准备好Harbor的离线软件包。


1.准备环境


下载安装docker和docker-compose工具,支持CentOS7/Ubuntu:

# 安装docker并启动
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

确认安装无误。

[root@mx harbor]# docker-compose --version
Docker Compose version v2.0.1
[root@mx harbor]# docker --version
Docker version 20.10.9, build c2ea9bc
[root@mx harbor]#

配置域名信息,由于Harbor要求使用https认证,这里需要一下域名,我们在hosts下指定,这里的ip根据自己的地址修改:

echo "192.168.31.92  docker.harbor.com" >> /etc/hosts
创建目录 添加密钥(密钥的harbor地址要和hosts地址相同),不使用https可略过下面的步骤
mkdir /etc/certs && cd  /etc/certs
openssl genrsa -out /etc/certs/ca.key 2048
openssl req -x509 -new -nodes -key /etc/certs/ca.key -subj "/CN=docker.harbor.com" -days 5000 -out /etc/certs/ca.crt

下载离线包,我这里2.4.0为例:

mkdir -p /opt/docker/
wget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-offline-installer-v2.4.0.tgz
tar -xf harbor-offline-installer-v2.4.0.tgz && mv harbor /opt/docker/ && cd /opt/docker/harbor
mkdir -p /opt/docker/harbor/data

这样基本运行环境就准备好了。


2.配置


在Harbor文件夹解压后的目录下,应该有如下文件。

image.png

首先,拷贝样例文件作为配置文件。

cp harbor.yml.tmpl harbor.yml

进入编辑:

vim harbor.yml

修改第5行的域名地址为docker.harbor.com,修改17-18行的证书和密钥。上面的端口我就不改了,默认使用80和443,根据自己的情况。


image.png


最后,保存退出:

esc
:
x


3.安装


开始准备和安装,其实这里也需要在线拉取镜像,并不是完全离线的。

./prepare && ./install.sh


image.png


4.网页登录


用admin/你设置的密码 登录,比如我使用的默认密码:Harbor12345


image.png


4.命令行登录


试试命令行方式,这里会报一个常见的错误:

docker login -u admin docker.harbor.com



image.png


解决方式如下:

vim  /usr/lib/systemd/system/docker.service

将原来的注释掉,修改为以下。如果你没有使用域名方式,则修改为自己的ip地址和端口。

ExecStart=/usr/bin/dockerd --insecure-registry https://docker.harbor.com

image.png


重启docker生效:

systemctl daemon-reload && systemctl restart docker.service

再次登录便能成功。注:客户端不需要修改此配置!


image.png

目录
打赏
0
0
0
0
19
分享
相关文章
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
198 20
【赵渝强老师】数据库不适合Docker容器化部署的原因
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
80 12
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
领取永久免费的ClawCloud云服务容器部署Alist网盘
领取永久免费的ClawCloud云服务容器部署Alist网盘,这是一款类似于 Vercel 和 Netlify 的在线开发平台,专为开发者和个人用户设计。如 Alist、Dify、frp 等,无需复杂的配置或高昂的成本。目前,平台提供永久免费的 5 刀/月额度,只需绑定一个注册超过 180 天的 GitHub 账号即可享受。
1491 10
容器化爬虫部署:基于K8s的任务调度与自动扩缩容设计
随着业务复杂度提升,传统定时任务和手工扩缩容难以满足高并发与实时性需求。本文对比两种基于 Kubernetes 的爬虫调度与扩缩容方案:CronJob+HPA 和 KEDA。从调度灵活性、扩缩容粒度、实现难度等维度分析,并提供 YAML+Python 示例。方案 A(CronJob+HPA)适合固定定时任务,配置简单;方案 B(KEDA)支持事件驱动,适合高并发与异步触发场景。根据实际需求可混合使用,优化资源利用与效率。
111 4
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
217 30
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问