Kubernetes教程(六)Harbor的安装和使用

一、前言

Harbor是用来搭建私有镜像仓库的,假如你某个应用同时部署在50台服务器上,某天你要给应用升级新的版本,那么就要给这50台服务器上传新的镜像。你想想是不是很累,但是有了Harbor搭建私有镜像服务器,你只需要把你的应用镜像推到Harbor,这50台服务器就可以从Harbor拉取新版本的镜像。

二、安装Docker Compose

Harbor是依赖于Docker和Docker Compose的,所以需要先安装Docker和Docker Compose的。Docker的安装在之前博客安装Docker里讲过来,下面先安装下Docker Compose。
Harbor依赖Docker Compose的版本可以参考Harbor官网

https://github.com/docker/compose/releases下载
在这里插入图片描述
如果github访问有问题不能下载,可以从https://download.csdn.net/download/qxmjava/90277368下载,这哥们还挺好不要积分,不过要注意下版本是否和你的Docker匹配。

我通常把软件都下载到主机上整理好,然后再上传到虚拟机或远程服务器上。这样如果换服务器没有必要再下载,直接从本机上传就行。先将docker-compose-linux-x86_64上传到/usr/local/bin/,并重命名为docker-compose

docker-compose是可执行文件,所以要先给它赋可执行权限

sudo chmod +x /usr/local/bin/docker-compose

验证安装

docker-compose --version

如果docker-compose版本错了,需要卸载旧版本,可以执行

sudo rm /usr/local/bin/docker-compose

三、安装Harbor

可以从https://github.com/goharbor/harbor/releases下载Harbor。
解压安装包:

tar -zxvf harbor-offline-installer-v2.12.2.tgz

解压后进入harbor目录,复制配置文件

cp harbor.yml.tmpl harbor.yml

编辑harbor.yml,有几个重要配置项

  • hostname设置为服务器的ip,不要设为localhost 或 127.0.0.1
  • http:port默认为80,暂时不动它
  • https涉及到证书,比较麻烦,在学习初期可以注释掉https那一大块
  • harbor_admin_password这个要记住,登录Harbor平台时会用到

安装Harbor

sudo ./install.sh

我是在虚拟机里安装的,安装过程遇到了磁盘空间不足的问题,参考了VirtualBox虚拟机扩容详解

如果port端口你没有改,直接在浏览器里访问http://<your-server-ip>,并用账号adminHarbor12345(配置harbor_admin_password)来登录。

如果想要继续更改 Harbor 配置,那么改完后需要重新初始化 Harbor。

# 停止并移除 Harbor 实例群
docker-compose down -v

# 生成配置文件,根据 harbor.cfg 配置生成 docker-compose 文件。
./prepare

# 后台启动 Harbor 实例群
docker-compose up -d

四、使用Harbor

配置私有镜像仓库地址

vim /etc/docker/daemon.json

添加"insecure-registries": ["<你自己的Harbor地址>"]

{
    "registry-mirrors": [
        "https://docker.m.daocloud.io"
    ],
    "insecure-registries": ["http://10.0.2.15:80"]
}

重新启动docker

systemctl daemon-reload
systemctl restart docker

如果主机和harbor仓库是同一台主机,重启docker后harbor仓库就登不上了,需要重启下harbor。

//切换到harbor目录.重启harbor
docker-compose down -v && docker-compose up -d

设置Harbor自动启动

  • /usr/local/bin/docker-compose是我自己docker-compose的位置
  • /home/wd/harbor/是我自己的harbor目录
cat >/usr/lib/systemd/system/harbor.service <<EOF
[Unit]
Description=Harbor service with docker-compose
Requires=docker.service
After=docker.service
[Service]
Restart=always
RemainAfterExit=yes
StandardError=null
StandardOutput=null
WorkingDirectory=/home/wd/harbor
ExecStartPre=/usr/local/bin/docker-compose -f /home/wd/harbor/docker-compose.yml down
ExecStart=/usr/local/bin/docker-compose -f /home/wd/harbor/docker-compose.yml up -d
ExecStop=/usr/local/bin/docker-compose -f /home/wd/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF
设置harbor开机启动
systemctl daemon-reload && systemctl enable harbor.service
重启docker看下harbor会不会自动启动
systemctl restart docker
docker ps

推送镜像

先在项目中新建一个项目my_harbor
在这里插入图片描述

先用Harbor账号登录
docker login -u admin -p Harbor12345 10.0.2.15:80

首先我们要给镜像打一个标签,标签格式为:镜像仓库域名/仓库名/镜像:tag
docker tag my-spring-boot-app:latest 10.0.2.15:80/my_harbor/my-spring-boot-app:latest

推送镜像到Harbor镜像仓库,前提是已经登录了镜像仓库
docker push 10.0.2.15:80/my_harbor/my-spring-boot-app:latest

从Harbor拉取镜像
docker pull 10.0.2.15:80/my_harbor/my-spring-boot-app:latest

参考:
https://blog.csdn.net/zxz547388910/article/details/142639513

https://blog.csdn.net/MssGuo/article/details/126210184

https://www.cnblogs.com/xyh9039/p/18523973

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑟王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值