部署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

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
8天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第30天】随着云计算和微服务架构的兴起,传统的运维模式已难以满足快速迭代和高可用性的需求。本文探讨了如何利用容器技术构建一个高效、可靠的自动化运维体系,重点分析了Docker和Kubernetes在这一过程中的关键作用,并提出了一套基于这些技术的持续集成(CI)与持续部署(CD)解决方案。通过实际案例和操作步骤的详细阐述,文章为读者提供了一种实现自动化运维的有效途径,同时对未来运维技术的发展趋势进行了展望。
|
8天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【5月更文挑战第30天】 在当今快速迭代的软件开发周期中,自动化运维成为确保交付速度和质量的关键因素。本文聚焦于如何利用容器技术实现高效自动化运维体系,特别是持续集成(CI)与持续部署(CD)的实践。通过深入分析容器化工具如Docker和Kubernetes在自动化流程中的应用,以及它们如何帮助实现环境的一致性、降低部署风险并提高生产效率,本文旨在为运维专业人员提供一套切实可行的参考方案。
|
10天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第28天】在当今快速迭代的软件发布周期中,传统的运维模式已难以满足敏捷开发和市场的需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点介绍基于Docker和Kubernetes的持续集成(CI)与持续部署(CD)的最佳实践。文章不仅涵盖技术实施细节,还包括如何优化流程、确保系统稳定性以及提高团队协作效率的策略。
|
10天前
|
运维 Kubernetes jenkins
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【5月更文挑战第28天】 在现代软件工程实践中,持续集成(CI)和持续部署(CD)已成为提升开发效率、确保产品质量的关键环节。本文旨在探讨如何利用容器技术构建一套高效、可靠的自动化运维系统,以支持敏捷开发流程和微服务架构。通过对Docker容器及Kubernetes集群管理工具的深入分析,我们提出了一种结合Jenkins实现自动化测试、构建与部署的完整解决方案,并讨论了其在现实业务中的应用效果和面临的挑战。
|
10天前
|
运维 监控 安全
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第28天】在现代IT基础设施管理中,自动化运维已成为提升效率、确保稳定性的关键手段。本文将探讨如何利用容器技术实现软件的持续集成(CI)与持续部署(CD),从而构建一套高效的自动化运维体系。通过分析容器化的优势和挑战,结合DevOps文化,我们提出一个实用的框架,以帮助企业快速响应市场变化,缩短产品上市时间,同时保障服务的高可用性。
|
11天前
|
运维 监控 Kubernetes
构建高效自动化运维体系:基于容器技术的持续部署策略
【5月更文挑战第27天】 在现代IT基础设施的管理中,自动化运维已成为提升效率、保障稳定性的关键因素。本文将探讨如何利用容器技术实现服务的快速部署和可靠运行,以及构建一个高效的自动化运维体系。通过深入分析容器化的优势与挑战,并提出一个切实可行的持续部署策略,旨在帮助运维团队优化现有流程,应对快速变化的业务需求。
|
15天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第23天】 在现代IT基础设施管理中,自动化运维是提升效率、减少人为错误和加快产品上市速度的关键。本文将探讨如何利用容器技术来构建一个高效的自动化运维体系,特别关注于持续集成(CI)与持续部署(CD)的实施。文章首先概述了容器技术和CI/CD的基本概念及其相互关系,接着详细阐述了如何通过Docker和Kubernetes等工具来实现自动化的构建、测试和部署流程。此外,文章还讨论了监控、日志管理和安全性策略的重要性,以确保自动化运维体系的稳定运行。最后,分享了实际案例分析以及未来发展趋势,为读者提供深入理解并实施自动化运维的参考。
|
15天前
|
运维 监控 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。传统的运维模式已难以满足快速迭代和高可靠性的双重需求。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现软件开发过程中的持续集成(CI)与持续部署(CD)。通过分析容器化的优势、CI/CD流程的关键组件以及实际落地策略,为读者提供一种提升运维效率、降低人为错误并加速产品上市时间的解决方案。
|
17天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【5月更文挑战第21天】在现代IT基础设施管理中,自动化运维是提升效率、确保稳定性的关键。文章聚焦于如何利用容器技术实现高效的持续集成(CI)与持续部署(CD),探讨了使用Docker和Kubernetes等工具的最佳实践,并提出了一套完整的自动化运维解决方案。通过此系统,企业可以实现快速、可靠的代码交付流程,同时保障应用的高可用性和弹性。
|
17天前
|
运维 持续交付 数据安全/隐私保护
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第21天】 在当今快速迭代的软件发展周期中,自动化运维成为确保交付速度和服务质量的关键因素。本文将探讨如何利用容器技术实现高效的持续集成(CI)与持续部署(CD)流程,从而优化运维效率和响应速度。通过分析容器化的优势、CI/CD的核心组件以及实际案例,我们将提供一个全面而深入的指导框架,以支持现代软件团队在不断变化的市场中保持竞争力。