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

相关文章
|
10天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
2月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
1333 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
2月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
2月前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
2月前
|
持续交付 开发者 Docker
掌握Docker容器化技术,加速软件开发与部署
掌握Docker容器化技术,加速软件开发与部署
60 0
|
2月前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
113 0
|
3月前
|
运维 Kubernetes 监控
掌握Docker容器化技术:构建、部署与管理的高效实践
【10月更文挑战第14天】掌握Docker容器化技术:构建、部署与管理的高效实践
113 0
|
30天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
213 77
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
16天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
87 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档