玩容器必会,Harbor的配置与简单使用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 玩容器必会,Harbor的配置与简单使用

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,有了它之后能够很方便的管理容器镜像,搭配Jenkins使用很是方便。


image.png


1.环境准备


提前准备好docker和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]#


2.安装Harbor


我这里使用CentOS 7 操作系统,ip地址可以更换为自己服务器的内网IP

# 配置域名信息
echo "192.168.1.1  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
mkdir -p /opt/docker/harbor
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/harbor && cd /opt/docker/harbor

修改配置文件:

cp harbor.yml.tmpl harbor.yml
vim harbor.yml
# 输入服务器的地址
hostname: docker.harbor.com
# 下面是端口,根据自己的配置
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8081
# 设置好harbor登录的密码,默认账户为admin
harbor_admin_password: 123456
# 如果需要https(建议启用)请配置好证书文件
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /etc/certs/ca.crt 
  private_key: /etc/certs/ca.key
# 准备环境
./prepare
# 安装
./install.sh


3.登录测试


docker login docker.harbor.com

如果有如下报错,

如果登录提示:Error response from daemon: Get  https://docker.harbor.com/v2/: x509: certificate signed by unknown authority
则有可能是有残留登录失败数据导致,需要编辑daemon.json ,指定你的登录地址

则执行后,重启docker后就能正常登录了。

vi /etc/docker/daemon.json 
{
 "insecure-registries": ["docker.harbor.com"] 
}
[root@mx harbor]# docker login docker.harbor.com
Authenticating with existing credentials...
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@mx harbor]#

当然最主要的功能还是通过网站访问,使用http://ip:8080 来访问,账号密码为前面设置的,我这里设置为admin/123456,输入后直接登录。


image.png


4.上传一个镜像


在仓库后台新建一个项目test

image.png


任意修改一个镜像的tag,加上test,上传测试一下。

docker tag mysql:5.7 docker.harbor.com/test/apache
docker push docker.harbor.com/test/apache

如果没有报错,那就正常了,接下来就可以打通网络,在任何地方能连接拉取镜像文件了。


相关文章
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
2月前
|
域名解析 网络协议 API
【Azure Container App】配置容器应用的缩放规则 Managed Identity 连接中国区 Azure Service Bus 问题
本文介绍了在 Azure Container Apps 中配置基于自定义 Azure Service Bus 的自动缩放规则时,因未指定云环境导致的域名解析错误问题。解决方案是在扩展规则中添加 `cloud=AzureChinaCloud` 参数,以适配中国区 Azure 环境。内容涵盖问题描述、原因分析、解决方法及配置示例,适用于使用 KEDA 实现事件驱动自动缩放的场景。
|
1月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
存储 安全 Linux
Podman入门全指南:安装、配置与运行容器
Podman入门全指南:安装、配置与运行容器
7537 1
|
9月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
236 6
|
9月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
381 5
|
11月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--k8s集群使用容器镜像仓库Harbor
本文介绍了在CentOS 7.9环境下部署Harbor容器镜像仓库,并将其集成到Kubernetes集群的过程。环境中包含一台Master节点和两台Node节点,均已部署好K8s集群。首先详细讲述了在Harbor节点上安装Docker和docker-compose,接着通过下载Harbor离线安装包并配置相关参数完成Harbor的部署。随后介绍了如何通过secret和serviceaccount两种方式让Kubernetes集群使用Harbor作为镜像仓库,包括创建secret、配置节点、上传镜像以及创建Pod等步骤。最后验证了Pod能否成功从Harbor拉取镜像运行。
1114 0
|
10月前
|
Kubernetes 监控 Java
如何在Kubernetes中配置镜像和容器的定期垃圾回收
如何在Kubernetes中配置镜像和容器的定期垃圾回收
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
弹性计算 Kubernetes 开发者
利用容器化服务实现游戏服务器的动态资源配置
【8月更文第12天】在游戏行业中,用户基数的变化往往呈现出明显的波动性,特别是在推广活动期间,用户基数会显著增加,而在非推广期则会有所下降。为了应对这种变化,游戏开发者需要一种能够根据用户基数动态调整服务器资源的解决方案,以确保用户体验的同时最大限度地节省成本。容器化服务因其灵活的资源管理和成本控制能力,成为了理想的解决方案。
197 2