Harbor部署docker私人仓库

1、新建虚拟机rhel9

2、配置网络

复制代码
#修改内核参数使网卡名称为ethxxx
grubby --update-kernel ALL --args net.ifnames=0

reboot
#配置网络
vim /etc/NetworkManager/system-connections/eth0.connection
内容为:

[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=172.25.254.250/24,172.25.254.2
dns=114.114.114.114

[root@localhost system-connections]# chmod 600 eth0.nmconnection 
[root@localhost system-connections]# nmcli connection reload 
[root@localhost system-connections]# nmcli connection up eth0 

3、挂载本地软件仓库

复制代码
#临时挂载
[root@localhost ~]# mkdir /rhel9
[root@localhost images]# mount /dev/sr0 /rhel9/

#永久挂载:编辑文件
[root@localhost images]# vim /etc/rc.d/rc.local 
内容:
mount /dev/sr0 /rhel9

#编辑本地源
vim /etc/yum.repos.d/rhel9.repo

内容:
[AppStream]
name=AppStream
baseurl=file:///rhel9/AppStream
gpgcheck=0

[BaseOS]
name=BaseOS
baseurl=file:///rhel9/BaseOS
gpgcheck=0

4、下载docker

复制代码
[root@localhost images]# tar zxf docker.tar.gz
[root@localhost images]# dnf install *.rpm -y
[root@localhost images]# systemctl enable --now docker.service

5、挂载镜像

复制代码
[root@localhost ~]# mkdir images

#将所需镜像全部放入images目录中
#全部挂载
[root@localhost images]# for i in `ls /root/images`; do docker load -i $i; done

6、生成证书

复制代码
[root@localhost ~]# mkdir /data/certs -p
#创建证书
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /data/certs/gaoyingjie.org.key -addext "subjectAltName = DNS:reg.gaoyingjie.org" -x509 -days 365 -out /data/certs/gaoyingjie.org.crt

#让docker读取证书
[root@localhost ~]# mkdir /etc/docker/certs.d/reg.gaoyingjie.org/ -p
[root@localhost ~]# cp /data/certs/gaoyingjie.org.crt /etc/docker/certs.d/reg.gaoyingjie.org/ca.crt
[root@localhost ~]# systemctl restart docker.service

7、部署harbor

复制代码
[root@localhost ~]# tar zxf harbor-offline-installer-v2.5.4.tgz 
[root@localhost ~]# cd harbor/
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# vim harbor.yml

内容:
hostname: reg.gaoyingjie.org
certificate: /data/certs/gaoyingjie.org.crt
private_key: /data/certs/gaoyingjie.org.key
harbor_admin_password: gyj

[root@localhost harbor]# ./install.sh  --with-chartmuseum
[root@localhost harbor]# docker compose stop
[root@localhost harbor]#  docker compose up -d

#编辑本地解析
[root@localhost harbor]# vim /etc/hosts
172.25.254.250  docker-harbor reg.gaoyingjie.org

8、建立登录认证

复制代码
[root@localhost ~]# mkdir auth
[root@localhost ~]#  htpasswd -Bc auth/htpasswd gaoyingjie
New password: 
Re-type new password: 
Adding password for user gyj

9、编辑本地dns解析

复制代码
#修改主机名:
hostnamectl hostname docker-harbor

#修改dns解析
[root@docker-harbor ~]# vim /etc/hosts

内容:
172.25.254.250 docker-harbor reg.gaoyingjie.org

10、登录harbor

复制代码
[root@docker-harbor ~]#  docker login reg.gaoyingjie.org
Username: admin
Password: 
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/#credential-stores

Login Succeeded

11、一键添加tag

复制代码
[root@docker-harbor ~]# docker images | awk 'NR>1{system("docker tag "$1":"$2" reg.gaoyingjie.org/library/"$1":"$2)}'

12、一键push上传到harbor仓库

复制代码
[root@docker-harbor ~]# docker images | awk '/reg.gaoyingjie.org/{system("docker push "$1":"$2)}'
相关推荐
阿星智力囊13 分钟前
Thinkphp6+nginx环境报错信息不显示,接口直接报500和CORS跨域(错误的引导方向),真坑啊
运维·nginx·php·thinkphp6
i***22071 小时前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
大柏怎么被偷了2 小时前
【Linux】进程等待
linux·运维·服务器
云和数据.ChenGuang3 小时前
运维面试题之oracle和mysql单表最大容量
运维·mysql·oracle
酷柚易汛智推官3 小时前
Fastlane赋能移动研发:从全流程自动化到工程效能升级
运维·自动化·酷柚易汛
落798.3 小时前
Genlogin × Bright Data,一键解锁自动化采集的高成功率方案
运维·自动化·数据采集·亮数据
羑悻的小杀马特3 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
L***86534 小时前
Failed to restart nginx.service Unit nginx.service not found
运维·nginx
十六年开源服务商5 小时前
WordPress运维服务怎样提供客户服务支持
运维
chxii5 小时前
PHP 配置全解析:Apache vs Nginx 的线程安全差异与 Windows 实战指南
运维·php