企业级docker镜像仓库harbor安装与使用

大家好我是南山,本期文档给大家带来了如何配置公司镜像仓库Harbor,有问题的兄弟们可以评论区留言,也可以观看我的哔站视频,我的哔站视频详细讲解了整个过程:https://www.bilibili.com/video/BV1vPqSBWEiA/?spm_id_from=333.1387.homepage.video_card.click

也可以通过搜索用户名的方式找到这期视频:GD-南山

一、配置环境

需要两台虚拟机:都需要安装docker和docker compose,没有安装的可以兄弟们可以参考https://blog.csdn.net/Z2831631429/article/details/155973027?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

|-----------------|----------------|
| IP | 作用 |
| 192.168.153.134 | 部署Harbor的服务端 |
| 192.168.153.139 | 用来从服务端拉取镜像的客户端 |

二、下载Harbor安装包

1、官网下载比较慢

bash 复制代码
Harbor 官网:https://github.com/goharbor/harbor/releases

2、使用下方命令下载比较快(建议)

bash 复制代码
wget "https://gh-proxy.org/https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz"

下载好之后会出现如图压缩包

三、修改Harbor配置文件

1、解压Harbor压缩包

bash 复制代码
#将Harbor解压到/opt目录下,此时会在/opt目录下生成一个Harbor目录
tar -zxvf harbor-offline-installer-v2.14.1.tgz -C /opt

2、生成docker compose文件

2.1 对harbor.yml.tmpl文件进行重名名

bash 复制代码
#将harbor.yml.tmpl重命名为harbor.yml,方便配置文件识别到
mv harbor.yml.tmpl harbor.yml

2.2 编辑yaml文件

vim harbor.yml

保存退出

2.3 运行install.sh脚本

bash 复制代码
#运行脚本
./install.sh

此时会生成新的compose.yml文件,并运行了docker-compose.yml

3、查看容器

下面的容器全部都是docker-compose.yml这个文件生成的,大家可以查看这个文件来了解详细配置信息

4、测试

4.1 关闭防火墙

bash 复制代码
#centos7
systemctl stop firewalld

4.2 需要在/etc/dockerdaemon.json中添加不安全仓库白名单

vim /etc/docker/daemon.json(修改完daemon.json文件之后一定需要重启docker:systemctl restart docker,重启完docker之后需要在harbor目录下重启所有容器:docker compose up -d)

bash 复制代码
1、vim /etc/docker/daemon.json



2、在文件中加上(将ip和端口修改为自己服务器上的ip和端口)
"insecure-registries": ["192.168.153.134:8888"]

添加之后的格式一定是下图这样,负责docker会识别不到此配置文件(注意逗号别遗忘)

4.3 在浏览器上访问服务端ip+端口(我本地是192.168.153.134:8888,大家根据自己配置的端口和ip进行访问)

用户名:admin

默认密码:Harbor12345(harbor.yml文件中设置的密码)

四、向Harbor镜像仓库中推送本地镜像

我现在将docker.1ms.run/nginx镜像推送至镜像仓库library中

我的docker.1ms.run/nginx镜像的标签是latest,我先给他把标签弄成具体版本

bash 复制代码
#将docker.1ms.run/nginx:latest重新打标成nginx:1.29.4
docker tag docker.1ms.run/nginx:latest nginx:1.29.4

1、给需要推送的镜像打标签

给本地镜像打 Harbor 格式标签的命令:

bash 复制代码
# 格式: docker tag 本地镜像标签 Harbor仓库格式的标签

docker tag nginx:1.29.4 192.168.153.134:8888/library/nginx:1.29.4


#Harbor仓库格式的标签:ip:端口/项目名称/镜像名称

2、登录镜像仓库

bash 复制代码
#在linux本地执行登录命令,换成你的ip端口密码

docker login 192.168.153.134:8888 -uadmin -pHarbor12345

3、推送镜像

推送镜像到 Harbor 的命令:

bash 复制代码
#直接使用docker push 镜像名称:标签  (一定是符合Harbor命名规则的标签)

docker push 192.168.153.134:8888/library/nginx:1.29.4

4、验证

在Harbor web页面进行查看

五、从客户端拉取Harbor仓库镜像

在客户端执行

1、编辑daemon.json文件

vim /etc/docker/daemon.json

2、重启docker

bash 复制代码
#为了加载配置文件
systemctl restart docker

3、拉取镜像

docker pull 192.168.153.134:8888/library/nginx:1.29.4

小细节总结

1、关闭服务端防火墙,不然web页面不能访问(也可以不关闭防火墙,但是需要配置桥接转发功能:sudo firewall-cmd --add-masquerade --permanent sudo firewall-cmd --reload)

2、因为我们上没有开启https服务需要在/etc/dockerdaemon.json中添加不安全仓库白名单

bash 复制代码
"insecure-registries": ["192.168.153.134:8888"]

3、修改完daemon.json文件之后 一定重启docker

4、重启完docker之后需要重启docker compose

5、在服务端推送镜像的前提是需要本地登录harbor

6、推送一定要打符合规则的标签

7、客户端需要添加服务端的仓库地址

8、客户端需要添加服务端的不安全白名单

相关推荐
飞翔沫沫情6 分钟前
MinIO 新版本 Docker 部署指南:告别 Web 控制台,拥抱 CLI 管理
docker·容器·docker-compose·对象存储·minio
代码AI弗森12 分钟前
n8n 专题:从“自动化脚本”到“可视化工作流引擎”(自建、节点、Webhook、生产部署)
运维·自动化
令狐少侠201129 分钟前
docker基本操作 部署启动nginx
nginx·docker·容器
oMcLin43 分钟前
如何在 Ubuntu 22.04 LTS 上部署并优化 Magento 电商平台,提升高并发请求的响应速度与稳定性?
linux·运维·ubuntu
攀小黑1 小时前
docker 部署rabbitmq消息队列并安装延迟队列插件
docker·容器·rabbitmq
小李独爱秋1 小时前
计算机网络经典问题透视:TLS协议工作过程全景解析
运维·服务器·开发语言·网络协议·计算机网络·php
阿甘正赚.2 小时前
Linux初学
linux·运维·服务器
CLOUD ACE2 小时前
谷歌云服务商 | 借助 BigQuery 完全托管的远程 MCP 服务器,更快地构建数据分析代理
运维·服务器
虚神界熊孩儿2 小时前
Linux下修改docker和harbor默认网段的方法
linux·docker·harbor
以太浮标2 小时前
华为eNSP模拟器综合实验之- VLAN-QinQ技术解析
运维·网络·华为·信息与通信