Kubernetes教程(六)Harbor的安装和使用
Harbor的安装和使用
- 一、前言
- 二、安装Docker Compose
- 三、安装Harbor
- 四、使用Harbor
- 配置私有镜像仓库地址
- 设置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 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>
,并用账号admin
和Harbor12345
(配置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://registry.cn-hangzhou.aliyuncs.com",
"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